我正在从Server检索大量数据。一切正常,但是当我试图使用IDataReader语句关闭内部的时
try
{
using (SqlConnection con = new SqlConnection(connString))
{
con.Open();
using (SqlCommand command = new SqlCommand(sql_query, con))
{
command.CommandTimeout = 0;
using (IDataReader rdr = new SqlCommand(sql_query, con).ExecuteReader(CommandBehavior.SequentialAccess))
{
dataTable = GetDataTableFromDataReader(rdr);
}
....我得到:执行超时过期了。在操作完成或服务器没有响应之前经过的超时时间。
使用类似于rdr =空的东西会更好吗?或者还有其他更好的解决方案如何关闭IDataReader?
发布于 2018-01-31 12:23:13
请注意,连接和命令都有超时设置。您不需要在使用块内手动关闭或释放。
您将在没有超时设置的SqlCommand块中创建第二个using。改为:
using (IDataReader rdr = command.ExecuteReader(CommandBehavior.SequentialAccess))
{
dataTable = GetDataTableFromDataReader(rdr);
}https://stackoverflow.com/questions/48542007
复制相似问题