我在解决方案中有两个项目。一个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语句?
答案 0 :(得分:2)
或者,是否使用了调用IDisposible.Dispose()的using语句?
是。您应该在每次调用StudentLogin
方法时创建新连接。你甚至不需要静态字段来保持对它的引用。
public static User StudentLogin(string username, string password)
{
using (var connection = new SqlConnection(ConnectionString))
{
}
}