我知道这是 SO 上最受欢迎的问题之一:著名的“SQL 错误 26” 不同之处在于我的 C# 应用程序第一次成功建立连接,然后第二次拒绝建立连接。我重新启动计算机,应用程序第一次建立连接,然后需要再次重新启动。
第一次能建立连接让我有信心:我的服务器名正确,我的实例名正确,我使用的用户名和密码组合正确,服务器机器开启,SQL浏览器服务开启服务器正在运行,我可以通过防火墙。
我有一堆方法,它们看起来都与以下内容非常相似:
private static string connection_string = @"Server=my_server\MS_SQL;User Id=user1;Password=password1"
public static List<string> GetListOfExistingItems(int item_id)
{
List<string> list_items = new List<string>();
try
{
using (SqlConnection sql_conn = new SqlConnection(connection_string))
{
sql_conn.Open();
SqlCommand sql_comm = new SqlCommand("SELECT Name FROM dbo.table1 WHERE ID=" + item_id,
sql_conn);
using (SqlDataReader sql_reader = sql_comm.ExecuteReader())
{
while (sql_reader.Read())
{
list_items.Add(sql_reader["Name"].ToString());
}
sql_reader.Close();
}
}
}
catch (Exception excp)
{
throw new Exception(excp.Message);
}
return list_items;
}
一些有趣的事实:
- 重新启动解决了问题(一次)。
- 注销并登录并不能解决问题。
- 如果我不关闭应用程序而是多次运行查询,则不会出现错误。
- 运行应用程序并关闭一次后,我无法从 SQL Server Management Studio 连接到我的数据库。
- 当我重新启动计算机时,我看到“等待后台程序关闭”,但没有列出任何程序。我等待了一段时间(可能 10-20 秒),消息消失,计算机最终重新启动。
提前致谢。