[英]DataTable not loading SqlDataReader
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(sqlCommand, connection))
{
command.CommandType = CommandType.Text;
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
DataTable datatable = new DataTable();
datatable.Load(reader);
return datatable;
}
}
}
运行此代码将返回一个空的DataTable。 但是,通过reader.Read()
循环并打印到调试控制台会显示读者有数据并打印预期的数据。 此外,当我在调试期间展开reader对象时,hasRows为true,并且字段计数适合返回的列数。
在这里有一个类似的帖子麻烦加载SQL数据读取器数据到DataTable但答案基本上是,只是不要使用它,使用SqlDataAdapter
。 我更喜欢使用它, DataTable
有一个带有IDataReader DataTable.Load(IDataReader)
的加载方法。 我只是不知道为什么读者在我将它打印到调试窗口时工作,而不是在我将它加载到DataTable
。 我只是忽略了什么?
尝试这样看看它是否有效......
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter dap = new SqlDataAdapter(sqlCommand,connection);
DataTable datatable = new DataTable();
dap.Fill(datatable);
return datatable;
}
使用SqlDataReader
或DataAdapter
,两者都可以。 关闭连接后写入return语句。 尝试它是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.