【发布时间】:2014-03-19 08:49:12
【问题描述】:
DataTable dt= new Datatable();
try {
SqlCommand Cmd = new SqlCommand("sp_getData",SqlCon);
SqlCommand.CommandType= CommandType.StroedProcedure;
SqlCon.Open();
sqlDataReader dr= cmd.ExecuteReader();
dt.Load(dr);
SqlCon.Close();
}
catch(Exception ex) {
}
finally{
dt.Dispose() //
}
return dt;
这段代码合法吗?...我的方法正在返回该数据表对象,所以在调用 dispose 后会保留该值吗??...请解释一下..
【问题讨论】:
-
您是否尝试在那段代码中解决尽可能多的问题?请阅读
IDisposable和using blocks。你让你的当地人不被处理,你处理了你唯一要返回的东西。 -
任何人都出来了??..请说出你的建议....
-
这是不合法的。看到这个姿势 - stackoverflow.com/questions/18869079/…
-
再做一次改变!将您的 SqlCon.Close() 放在 finally 中,因为如果您遇到一些错误,例如使用 ExecuteReader,您的连接将不会关闭。