【发布时间】:2016-01-08 13:53:11
【问题描述】:
我在一个解决方案中有两个项目。一个 C# 类库项目封装了逻辑和一个用于查看的 asp.net 网站。 逻辑如下:
public static class LoginHandler
{
private static string _connectionString = Data Source=.;Initial Catalog=ASP;Integrated Security=True"
private static SqlConnection Connection;
static LoginHandler()
{
Connection = new SqlConnection(ConnectionString);
}
public static User StudentLogin(string username, string password)
{
using (Connection)
{
.........
}
}
}
一切顺利,直到我第二次调用 StudentLogin 方法。
我得到一个 InvalidOperationException 说 Connection 的 ConnectionString 属性未初始化。 (ConnectionString 是 "" 通过监视窗口)
我的问题是,由于静态成员只被初始化一次(在这种情况下,在静态构造函数中),ConnectionString 属性如何改变?
或者,调用 IDisposible.Dispose() 的 using 语句是否有罪?
【问题讨论】:
-
到底为什么需要
LoginHandler?在您的方法中定义您的SqlConnection并用作using(var con = new SqlConnection(ConnectionString))。