2011-07-22 84 views
1

我想連接到在線SQL數據庫。要做到這一點,我用這個代碼:C#SqlConnection無法連接

SqlConnection conn = new SqlConnection("Data Source=77.243.225.193;User ID=rune;Password=secret;database=test"); 
conn.Open(); 
Textbox.Text = "ServerVersion: " + conn.ServerVersion.ToString() + "\n\r"; 
Textbox.Text = "State: " + conn.State.ToString(); 

我剛剛從互聯網上的代碼,因爲這個使用這個是我的第一次。 不知何故,這不起作用,因爲它說它無法連接到數據庫。任何人都能解釋我爲什麼?

謝謝!

+3

那麼,對於初學者,你確定數據庫正在運行? –

+0

是的,檢查一切,IP地址,用戶名等。你可以從你的位置ping數據庫嗎? – Noah

+2

你的代碼看起來不錯。只要確保IP地址是正確的,數據庫實際上是SQL Server,並且用戶名和密碼是正確的。還要確保數據庫允許遠程連接,並確保防火牆不會阻止連接。 – Icemanind

回答

6

通過量一系列的測試運行,並檢查關閉那些過去:

  1. 是77.243.255.139一個有效的地址?你能平嗎?
  2. Sql Server @ IP地址是否需要特定端口上的連接,例如: 77.243.255.139,1724?
  3. test聯機並裝載到服務器上的數據庫的有效名稱?
  4. rune服務器的有效SQL登錄名?
  5. rune是否具有訪問test數據庫的相應權限?
  6. 密碼是否正確?

顯然有無數的原因可能導致您無法連接,您得到了什麼確切的錯誤信息?

UPDATE:根據您最後的評論,你說你使用phpMyAdmin ...這是MySQL數據庫管理工具(有人糾正我,如果我錯了)?

如果是MySql數據庫,則需要使用MySql ADO.NET Connector以及有效的MySql連接字符串。檢查http://www.mysql.com/products/connector/

+0

這是一個有效的IP ..我注意到它的*。*。225. *而不是255,但它沒有改變一件事。我不知道它是否在特定的端口上運行,它不是我的服務器。它確實使用phpMyAdmin,如果這有所作爲,不知道。其餘的是正確的,從phpMyAdmin我可以檢查和編輯數據庫。 –

+0

連接器看起來不錯,我找到了關於如何使用連接器的指南。現在它說我需要添加引用:MySql.Data,但我似乎無法找到MySql.Data ..是的,我確實安裝了連接器.. –

+0

MySql.Data可能會安裝在某處像'C:\ Program Files \ MySQL \ Connector.NET 5.0.3 \ Driver \ bin \ net-2.0 \ release \ MySql.Data.dll「。我建議你添加一個引用,但在屬性窗格中將'Copy Local'屬性更改爲'true'。 –

1

如果這是SQL Server Express(或開發版),那麼我假定使用TCP/IP的遠程連接未啓用(這是默認設置)。如果您有權訪問SQL Server,那麼我建議您按照此鏈接中的說明進行操作:Configure SQL Server for remote connections。您還可以嘗試使用命令行中的「telnet 77.243.255.139 1433」telnet到端口1433(默認SQL Server端口)。

0

嘗試

Data Source=77.243.225.193,1433;Network Library=DBMSSOCN;Initial Catalog=test; 
User ID=rune;Password=secret; 

Network Library=DBMSSOCN 

告訴提供商使用TCP/IP而不是命名管道。

我注意到你之前的評論,有一些IP地址混淆,我認爲它是77.243.225.193,但找出確切的地址;如果你不這樣做,你將無處可逃!

+0

很高興瞭解網絡庫,但這並不奏效無論是。我就此聯繫了服務器所有者,希望他不會忘記允許遠程連接..他之前告訴我它應該可以工作,但你永遠不會知道......並且225 IP是正確的。我會編輯這個問題。 –