我正在尝试使用Using()
语句和SqlConnection
。使用属性时连接状态关闭
我做了SqlConnection
页属性是这样的...
public SqlConnection baseConnection
{
get { return new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); }
}
然后创建using()
声明是这样的...
using (baseConnection)
{
SqlCommand select = new SqlCommand("SELECT * FROM TABLE", baseConnection);
baseConnection.Open();
SqlDataReader reader = select.ExecuteReader();
//... other irrelevant code
}
但代码运行时我得到一个异常
异常详细信息:System.InvalidOperationException:ExecuteReader需要open和ava可用连接。连接的当前状态已关闭
我了解异常,我不明白的是为什么当我用baseConnection.Open()
打开它时连接未打开?
我在整个站点使用这个连接,我想把它作为一个页面属性放在一个自定义的基类中,所以我不必继续输入它。这是不允许的?
@Aniket:由于附着到的SelectCommand的baseConnection是不是该被打开 – jbl 2013-03-20 10:10:05
我不认为这是一个好主意的人。在连接上调用Dispose并不会使其成为null。因此,这只会工作一次(然后创建),并在其余时间失败。 – 2013-03-20 10:11:20
@jbl嗯,........ – 2013-03-20 10:11:23