.net 关闭或释放我的DataReader或SqlConnection
我有以下代码从表中检索列名 康涅狄格州公开赛 usingSqlCommand cmd=newsqlcommandcolquery,conn { 尝试 { 使用sqldatareader dr=cmd.ExecuteReader { 里德博士; var columns=新列表; 对于int i=0;i.net 关闭或释放我的DataReader或SqlConnection,.net,sql-server,sqldatareader,sqlconnection,datareader,.net,Sql Server,Sqldatareader,Sqlconnection,Datareader,我有以下代码从表中检索列名 康涅狄格州公开赛 usingSqlCommand cmd=newsqlcommandcolquery,conn { 尝试 { 使用sqldatareader dr=cmd.ExecuteReader { 里德博士; var columns=新列表; 对于int i=0;i
using conn = new SqlConnection(...) {
conn.Open();
using cmd = new SqlCommand(conn) {
dr = cmd.ExecuteReader();
while (dr.read) {
// do stuff
}
}
}
将using块添加到您的SqlConnection中,删除所有关闭调用,您应该注意using块是执行此操作的正确方法。缺少一件事:@Steve so将所有内容包装到usingconn.Open{…}?@user1443098这是Steve提到的一件事吗?关闭连接需要多长时间?退出using块需要将近15分钟。这取决于do stuff中的内容。可能是毫秒或天。这只是上面代码块中的内容。遍历列名。这取决于表大小吗?是的,它会,正如所写的那样。Loo就像你想要表模式一样。ExecuteReader选项CommandBehavior.SchemaOnly可以让你得到它。那么你就不需要while循环了