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();
创建的,HasRows
是true
,它会显示正确的字段数量。但是,我从中创建的DataTable
为空。
我做错了什么?我99%肯定它正在获取数据,但我不知道如何通过SqlDataReader
对象找到它以确保它。
感谢。
答案 0 :(得分:6)
而不是SqlDataReader
,请使用SqlDataAdapter
。
SqlDataAdapter myAdapter = new SqlDataAdapter(command);
myAdapter.Fill(datatable);
使用SqlDataAdapter
,您无需明确呼叫SqlConnection.Open()
和SqlConnection.Close()
。它是在Fill()
方法中处理的。