2012-12-03 162 views
0

我試圖用c#遠程連接到SQL Server 2005 Express版本,但它引發異常。無法使用c#遠程連接SQL Server 2005 Express

A network related or instance specific error occured while establishing a connection to SQL Server .The server was not found or was not accessible.Verify that the instance name is correct and the SQL Server is configured to allow remote connection. (provider :Name Pipes Provider,error:40 - Could not open a connection to SQL Server)

下面是我使用連接到數據庫

private void button_test_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      string str = "data source=" + textBox_server.Text + "; initial catalog=" + textBox_db.Text 
    + "; user id=" + textBox_user.Text + "; pwd=" + textBox_password.Text + ";"; 

      SqlConnection sqlcon = new SqlConnection(str); 
      sqlcon.Open(); 
      sqlcon.Close(); 
      MessageBox.Show("Test Connection was successfull"); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Test Connection failed. "+ ex.Message); 
     } 

我輸入正確的IP,數據庫表名,用戶名和密碼的代碼。

驗證了SQL Server Express配置中的所有內容。一切安好。

那麼我哪裏錯了?

+1

sql server是獨立PC上的嗎?如果是這樣,你可能需要打開一個特定的端口。 – Derek

+0

你沒有提到防火牆,你將需要配置Windows防火牆,以允許連接(在SQL Express運行的PC上) –

+0

你已經爲兩臺PC配置了Windows防火牆 – Sohail

回答

2

這通常是2個問題中的一個。它可能是防火牆阻止,最簡單的測試方法是嘗試telnet到SQL Server端口(默認爲1433)。

經常發生的另一個問題是在SQL Server Express上沒有啓用正確的協議。這裏有一個很好的描述如何做到這一點。 http://www.teratrax.com/connecting-sql-server-express/

0

在客戶端計算機上,嘗試通過停用防火牆。

在服務器計算機上,禁用防火牆還要檢查一下您激活MSSQL的所需的實例的TCP/IP協議:

  • 應用「SQL Server配置管理器」
  • 展開節點「 SQL Server網絡配置」
  • 點擊 「上XXXXXXX協議」(選擇所需的SQL實例)
  • 右/單擊TCP/IP並選擇 「啓用」

如果你想改變端口來監聽;只需編輯「TCP/IP」的屬性

Serge

+0

防火牆在兩臺機器上均被禁用..一切正確配置 – Sohail

+0

您的客戶端計算機上是否安裝了客戶端連接工具?否則,如果您的客戶端計算機中包含Visual Studio,請嘗試連接到SQL Server。 –

+0

在一臺機器上有sql server express,我連接的機器上安裝了visula studio – Sohail