【发布时间】:2012-12-02 23:38:40
【问题描述】:
我确实阅读了所有其他帖子,但没有人真正回答我的问题。
这是我的返回表格的函数
public DataTable ReturnTable()
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(mainConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandType = CommandType.Text;
SQL = " SELECT * from table";
cmd.CommandText = SQL;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
}
}
return dt;
}
前一个与以下(我在发现“使用”之前一直使用的那个)相比有什么优势:
public DataTable ReturnTable()
{
DataTable dt = new DataTable();
SqlConnection con = new SqlConnection(mainConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
SQL = " SELECT * from table";
cmd.CommandText = SQL;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
return dt;
}
使用第二个,con、cmd 和 da 是否正确处理? 第二个有什么问题吗?
谢谢!
【问题讨论】:
-
连接对象是最重要的关闭或释放对象,因为它拥有物理数据库资源。在第二种情况下,如果出现异常,直到 GC 完成对象后才会关闭。处理命令和数据适配器是一个非常好的主意,但不是那么重要。
标签: c# .net using-statement