C#使用命名实例连接到SQL服务器?

时间:2008-11-20 22:01:51

标签: c# sql

我的客户告诉我,我为他们制作的程序不会连接到SQL服务器命名实例,我有一个没有命名实例的标准SQL服务器,所以我想知道如何测试它。命名实例连接字符串如下所示,反斜杠可能是我的代码失败吗?

Driver = {SQL Native Client}; Server = myServerName \ theInstanceName; Database = myDataBase;

我的代码如下:

sqlServer=s.Substring(keyword.Length,s.Length-keyword.Length);
FormODBC formODBC=new FormODBC(this);
formODBC.SetSqlServer(sqlServer,dbUsername,dbPassword,database,table);
formODBC.ReadData();

我应该如何处理反斜杠,因为我怀疑这可能是问题?

由于

6 个答案:

答案 0 :(得分:3)

我们有带有命名实例的SQL服务器。 示例:myservername \ sql2005。 反斜杠很好,在连接字符串服务器名称将是“myservername \ sql2005”,工作100%罚款。您可以在同一台服务器上拥有“常规实例”,将是“myservername”

PS只是对你的函数进行单元测试,使连接字符串返回“myservername \ sql2005”。

答案 1 :(得分:3)

另外,请记住反斜杠是C#字符串中的转义字符。如果您的实例名称包含在字符串变量中,请确保执行以下任一操作:

string server = "myServer\\myInstance";

string server = @"myServer\myInstance";

答案 2 :(得分:1)

答案是确保您的连接字符串是可配置的,并将其设置为:

data source = localhost \ msexpress; database = dbname; trusted_connection = true;

答案 3 :(得分:0)

斯科特 冒着明显的风险,您是否尝试在自己的开发环境中设置命名实例?我实际上并不知道你的问题的答案,但我从未亲自遇到一个解决方案,测试直接失败的方案没有帮助。至少你应该能够获得更好的调试信息,以确切地知道什么是失败的。祝你好运得到解决。

此致 克里斯

答案 4 :(得分:0)

还偶尔出现SQL Express版本,其名称为My ServerName \ SQLEXPRESS。这可能会使一些人绊倒,因为他们不会想到以这种方式指定服务器。

答案 5 :(得分:0)

您可以将连接字符串解压缩到配置文件(请注意,这不一定是安全的 - 这取决于他们的SQL安全服务器的设置方式以及运行应用程序的帐户) - 然后您的客户端就可以添加部署时,服务器与应用程序配置的相应连接字符串。

注意:

  • 您可以通过将.txt文件重命名为.udl文件并运行直到可以连接到您/他们的服务器来创建连接字符串。
  • 您的实例化实例实际上可以通过名称访问 - 安装SQL服务器的计算机名称