在asp.net中使用数据绑定控件时,是否有一个很好的模式可以确保所有内容都正确处理?
这是我到目前为止所拥有的:
using (var conn = New SqlConnection("connectionString"))
using (var cmd = conn.CreateCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "myProc";
conn.Open();
using (var rdr = cmd.ExecuteReader())
{
gridview1.DataSource = rdr;
gridview1.DataBind();
}
}
我是否需要关闭datareader / command / connection?或者using语句是否自动处理?或者使用数据绑定控件时可能有更好的模式?
答案 0 :(得分:1)
在finally块中使用using
语句。using
语句调用dispose()
方法时,您不需要注意处理对象,这会导致对象本身超出范围只要调用Dispose
答案 1 :(得分:1)
您的代码似乎正确。唯一可能的变化是:
CommandBehavior.CloseConnection
(using
语句流不是必需的)但他们真的很小。
答案 2 :(得分:1)
使用'using'
语句调用dispose方法本身,因此您不需要处理它。但是,您可以使用以下之一:
如果要启用分页和排序,则需要加载 数据首先到DataTable然后关闭你的连接和 读者喜欢以下:
var rdr=cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(rdr);
rdr.Close();
gridview1.DataSource = dt;
gridview1.DataBind();
如果您不想启用分页和排序,则可以绑定数据 到gridview,然后在将它加载到gridview之后将其关闭,如:
gridview1.DataSource = rdr;
gridview1.DataBind();
rdr.Close();