我可以在DataBind()之后关闭SqlDataReader吗
本文关键字:SqlDataReader 之后 DataBind 我可以 | 更新日期: 2023-09-27 18:19:46
假设我做了类似的事情
using (SqlDataReader allUsersDataSource = AdminDB.GetUsers())
{
// bind all portal users to dropdownlist
allUsers.DataSource = allUsersDataSource;
allUsers.DataBind();
}
dataBinded的行为是否仍然正确,还是需要SqlDataReader
不显示?
编辑:附加信息
public static SqlDataReader GetUsers()
{
// Create Instance of Connection and Command Object
using (SqlConnection myConnection = new SqlConnection( (string) PortalSettings.GetPortalSetting("ConnectionString")))
using (SqlCommand myCommand = new SqlCommand("dbo.GetUsers", myConnection))
{
// Mark the Command as a SPROC
myCommand.CommandType = CommandType.StoredProcedure;
// Open the database connection and execute the command
myConnection.Open();
SqlDataReader dr = myCommand.ExecuteReader();
// Return the datareader
return dr;
}
}
用于绑定数据的代码使用使用块
using (SqlDataReader allUsersDataSource = AdminDB.GetUsers())
{
// bind all portal users to dropdownlist
allUsers.DataSource = allUsersDataSource;
allUsers.DataBind();
}
using只获取IDisposable对象,并在块执行结束时调用Dispose方法。因此,您不必担心在此处处理Reader对象。