2011-12-08 147 views
1

我想連接到本地主機sql server 2008 express服務器。我在本地運行我的c#asp.net代碼(在連接到開發服務器之前進行測試)。我無法獲得連接到數據庫的代碼。我從Visual Studio 2010中創建的數據庫的屬性中複製連接字符串,並嘗試使用它,但它不起作用。然後我用:無法連接到本地sql server 2008 express

//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配置爲允許遠程連接。(provider:命名管道提供程序,error:40 - 無法打開到SQL Server的連接)」

我還檢查,以確保SQL Server Express的運行(這是)並且所有連接但通過啓用。我無法使連接工作。有任何想法嗎?

+0

'bldr.DataSource = 「(本地)/ SQLEXPRESS;」'可能? – Joe

+0

不,不幸的是我有同樣的問題... – shawleigh17

+0

你也可以試試'。\\ SQLEXPRESS' –

回答

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(); 
4

你的數據源是不正確的:

"(localhost)/SQLEXPRESS;";

應該要麼是(local)\SQLEXPRESSlocalhost\SQLEXPRESS。你可以參考這個MSDN Blog Post瞭解更多信息。此外,傳統上它是一個反斜槓,而不是斜線(所以如果需要的話確保它被轉義)。

(local),包括parens是本地機器的特殊指示符。

localhost是本地機器的網絡名稱。

您可以使用任何一個連接到本地實例。

+0

好的,我使用了'。\\ SQLEXPRESS',它似乎已經連接,但現在我有這個錯誤:嘗試附加一個自動命名的數據庫文件C:/ Documents and Settings/1091912/My Documents/Visual Studio 2010/WebSites/BrokerBuy/App_Data/BrokerBuy.mdf失敗。具有相同名稱的數據庫存在,或指定的文件無法打開,或位於UNC共享上。 – shawleigh17

+0

+1他解決了你的第一個問題,我認爲給他+1。你的第二個評論可能應該是另一個問題。 – JonH

+0

禮貌'+ 1'也是我:) –

相關問題