我在一个解决方案中有两个项目。封装逻辑的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语句吗?
发布于 2016-01-08 21:55:44
还是调用IDisposible.Dispose()的using语句的责任呢?
是。您应该在每次调用StudentLogin方法时创建一个新连接。您甚至不需要静态字段来保持对它的引用。
public static User StudentLogin(string username, string password)
{
using (var connection = new SqlConnection(ConnectionString))
{
}
}https://stackoverflow.com/questions/34678705
复制相似问题