我在尝试连接SQL服务器时遇到了一个奇怪的问题。使用Visual Studio我可以使用数据库资源管理器连接而不会出现任何问题,创建查询并获取结果。使用来自这些连接的连接字符串在通过C#代码运行时无法连接,我收到错误:
网络错误26。
我已经尝试了所有常见的嫌疑人:防火墙,连接字符串,权限等,现在我完全感到沮丧。
Visual Studio VS Express for Desktop 2015的版本。我尝试过System.Data.SQL,System.Data.ODBC,实体框架,并且使用任何C#代码的所有内容都失败了。
任何人都可以解释为什么通过VS的连接会起作用,但C#中的简单连接对象会失败吗?
P.S。我不是一个专业的程序员,只是一个小小的医护人员试图改进小实验室。
由于
工作连接字符串为'Server=server name\instance;Initial Catalog=table;Persist Security Info=True;User ID=my name; Password=pwd;'
。将其复制到C#代码无法建立连接(如上所述)。我试过SQLCommandBuilder
但失败了。服务器是另一台计算机,而不是本地数据库。
连接代码示例:
private void OpenConnection()
{
string connStr = @"Server=<server name>\<instance>;Initial Catalog=<table>;Persist Security Info=True;User ID=<my name>; Password=<pwd>";
try {
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:0)
也许您的连接字符串无效, 首先要保证有一个有效的连接字符串,使其成为“udl”文件。 要创建udl,创建一个记事本文本文件并将扩展名从“txt”更改为udl,双击它,它会显示“数据链接属性”,所以设置它,它会创建连接字符串,甚至可以测试连接状态
答案 1 :(得分:0)
除了连接字符串之外,如果你发布了你正在尝试的连接类型,那将会很有帮助。我相信这些是三种更常见类型的连接字符串的模型:
标准安全:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;
可信连接
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
连接到SQL Server实例
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;