2016-09-19 5 views
0

C#を使用してmysqlに接続し、jsonデータを取得する方法?上述したように

私はMySQLデータベースに接続するためにC#を使用していると私はJSONデータタイプを読みたいです。

using (MySqlConnection sconn = new MySqlConnection(sqlConnectString)) 
{  
    sconn.Open(); 
    String sql_Command = @"SELECT `id` FROM orders.jsontest;"; 

    using (MySqlCommand scmd = new MySqlCommand(sql_Command, sconn)) 
    { 
     **MySqlDataReader sdr = scmd.ExecuteReader();** // fatal error 
     DataTable datatable = new DataTable(); 

     // ... 
    } 
} 

が、それは私がここにExecuteReaderを使用できないことを指定できます。 私は方法MySqlCommand.ExecuteReaderを使うのか?正しい

+0

は常にそれがショーの正確なエラーメッセージ –

+0

を表示したときに私のプログラムの実行が「MySqlDataReader SDR = SCMDに{「コマンドの実行中に発生した致命的なエラー。」} .ExecuteReader(); " –

答えて

0

私はthis question is oldを知っているが、念のためにあなたはまだあなたの問題や他の誰かが同様の問題に遭遇し、次のコードは、あなたのために働く必要がある解決策を持っていない。

今、あなたはこのラインに

while (reader.Read()) 
をであるために注意を払うべき
private IEnumerable<int> GetIds() 
{ 
    using (MySqlConnection connection = new MySqlConnection(connectionString)) 
    { 
     connection.Open(); 
     string commandText = @"SELECT id FROM jsontest"; // Assuming that `orders` is your database, then you do not need to specify it here. 

     using (MySqlCommand command = new MySqlCommand(commandText, connection)) 
     { 
      MySqlDataReader reader = command.ExecuteReader(); 

      while (reader.Read()) 
      { 
       yield return reader.GetInt32(0); 
      } 
     } 
    } 
} 

依然として有効な結果を読み取ることができMySqlDataReaderと取得しInt32としてフェッチテーブルone at a timeの各レコードを返すようにreaderに指示し、このライン

yield return reader.GetInt32(0); 

限りjsontestテーブルからの結果をフェッチ210

int) 。テーブルの列タイプがINTでない場合は、これを変更する必要があります。 1つの列("SELECT id")を選択したため、フェッチされたresulテーブルは1つの列のみで構成されているため、パラメータは0です。

また、あなたのコードでは、結果をDataTableとして取得したいようです。そうならば、次のように、あなたの代わりにMySqlDataReaderMySqlDataAdapterを使用する必要があります。

DataTable resultTable = new DataTable("ResultTable"); 
MySqlDataAdapter adapter = new MySqlDataAdapter(command); 
adapter.Fill(table); 
0

あなたのSQLコマンド

String sql_Command = @"SELECT id FROM orders.jsontest"; 
+0

あなたの文字列に何が間違っていたと思いますか? – Drew

+0

文字列に余分な ';'があります – Mostafiz

+0

私は1つを入れませんが、それはbarfsだと疑います – Drew

関連する問題