2011-10-18 12 views
5
string query = "select * from cfo_daily_trans_hist"; 
      try 
      { 
       using (SqlConnection connection = new SqlConnection(
         cnnString)) 
       { 
        SqlCommand command = new SqlCommand(query); 
        command.Connection = connection; 
        connection.Open(); 

        var result = command.ExecuteReader(); 
        DataTable datatable = new DataTable(); 
        datatable.Load(result); 
        connection.Close(); 
       } 
      } 

したがって、var resultExecuteReader();で作成され、HasRowstrueであり、正しいフィールド量が表示されます。しかし、私が作成したDataTableは空です。SQL Data ReaderデータをDataTableにロードする際のトラブル

何が間違っているのですか?私は99%がデータを取得していると確信していますが、確かめるためにSqlDataReaderオブジェクトを通して見つける方法はわかりません。

ありがとうございました。

答えて

6

SqlDataReaderの代わりにSqlDataAdapterを使用してください。 SqlDataAdapter

SqlDataAdapter myAdapter = new SqlDataAdapter(command); 
myAdapter.Fill(datatable); 

、明示的SqlConnection.Open()SqlConnection.Close()を呼び出す必要はありません。これはFill()メソッドで処理されます。

関連する問題