无法连接到本地sql server 2008 express

时间:2011-12-08 19:05:18

标签: c# asp.net sqlconnection sql-server-2008-express

我正在尝试连接到本地主机sql server 2008 express服务器。我也在本地运行我的c#asp.net代码(在连接到dev服务器之前进行测试)。我无法获取连接数据库的代码。我从visual studio 2010中创建的数据库的属性中复制了连接字符串,并尝试使用它,但它不起作用。然后我用了:

//Build the connection 
    SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder();

    //Put your server or server\instance name here.  Likely YourComputerName\SQLExpress
    bldr.DataSource = "(localhost)/SQLEXPRESS;";

    //Attach DB Filename
    bldr.AttachDBFilename = "C:/Documents and Settings/1091912/My Documents/Visual Studio 2010/WebSites/BrokerBuy/App_Data/BrokerBuy.mdf";

    //User Instance
    bldr.UserInstance = true;

    //Whether or not a password is required.
    bldr.IntegratedSecurity = true;

    SqlConnection connectionString = new SqlConnection(bldr.ConnectionString);
    connectionString.Open();

但这也不起作用。我也尝试过./SQLEXPRESS作为我的数据源名称,但这也不起作用。出现的错误是:

“建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)“

我还检查过以确保sql server express正在运行(它是)并且启用了除via之外的所有连接。我无法获得连接工作。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您的DataSource不正确:

  

“(本地主机)/ SQLEXPRESS;”;

应该是(local)\SQLEXPRESSlocalhost\SQLEXPRESS。有关详细信息,请参阅此MSDN Blog Post。此外,传统上它是反斜杠,而不是斜杠(所以如果你需要,请确保它已被转义)。

(local),包括parens是一个特殊指标,意思是本地机器。

localhost是本地计算机的网络名称。

您可以使用其中任何一个连接到本地实例。

答案 1 :(得分:1)

您的代码存在一些问题。

第一个是(localhost)不是有效令牌。您可以使用(local),甚至更好,.

第二个是你的路径使用正斜杠而不是反斜杠。虽然较新版本的Windows支持* NIX兼容性,但数据库驱动程序可能会也可能不会取决于它们如何在内部解析路径。

以下是一些应该有效的示例代码:

//Build the connection 
SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder();

//Put your server or server\instance name here.  Likely YourComputerName\SQLExpress
bldr.DataSource = ".\\SQLEXPRESS";

//Attach DB Filename
bldr.AttachDBFilename = bldr.AttachDBFilename = @"C:\Documents and Settings\1091912\My Documents\Visual Studio 2010\WebSites\BrokerBuy\App_Data\BrokerBuy.mdf";

//User Instance
bldr.UserInstance = true;

//Whether or not a password is required.
bldr.IntegratedSecurity = true;

SqlConnection connectionString = new SqlConnection(bldr.ConnectionString);
connectionString.Open();