asp.net; repeater.databind和关闭数据库连接

时间:2009-12-16 10:14:27

标签: asp.net connection repeater

在调用转发器的数据绑定方法时,是否会自动关闭与数据库的连接?

这是ent包装类方法中包含的代码片段。库。

public SqlDataReader RunQuery(string strQuery)
{
    Database db = DatabaseFactory.CreateDatabase();
    string sqlCommand = strQuery;
    DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);
    return (SqlDataReader)db.ExecuteReader(dbCommand,CommandBehavior.CloseConnection);
}

表示层调用包装类的方法,包含上面的代码,如

SQLwrap sr = new SQLwrap();
Repeater1.DataSource = sr.RunQuery("select ....");
Repeater1.DataBind();

这是正确的方法吗?

我想我很久以前就读到过repeater.databind会自动关闭连接,但我现在还不确定。

好的,如果确实关闭了连接,那么在不是转发器的情况下,如何确保连接已经关闭?

感谢。

1 个答案:

答案 0 :(得分:0)

是。调用命令并返回查询后,将关闭所有数据库连接。

由于您在函数中创建了数据库对象,因此它超出了范围,并且在获得结果后连接将关闭。

有关潜在问题,请参阅this question