无法将SQL数据读取器数据加载到DataTable中

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 result是通过ExecuteReader();创建的ExecuteReader();HasRowstrue ,它显示正确的字段数量。 但是,我从它创建的DataTable是空的。

我究竟做错了什么? 我99%肯定它正在获取数据,但我不知道如何通过SqlDataReader对象找到它以确保。

谢谢。

而不是SqlDataReader ,使用SqlDataAdapter

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

使用SqlDataAdapter ,您无需显式调用SqlConnection.Open()SqlConnection.Close() 。 它在Fill()方法中处理。