我知道这是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;
}
一些有趣的事实:
提前致谢。
答案 0 :(得分:0)
某处您没有关闭连接。
我的下一个疑难解答步骤是对sql_conn.Open();
的代码(全部代码)进行字符串搜索,找到不在使用块中的代码,否则不会显式关闭。