我可以在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;
    }
}

我可以在DataBind()之后关闭SqlDataReader吗

用于绑定数据的代码使用使用

using (SqlDataReader allUsersDataSource = AdminDB.GetUsers())
   {
    // bind all portal users to dropdownlist
     allUsers.DataSource = allUsersDataSource;
     allUsers.DataBind();
   }

using只获取IDisposable对象,并在块执行结束时调用Dispose方法。因此,您不必担心在此处处理Reader对象。