簡體   English   中英

通過ip連接到sql server數據庫

[英]connection to a sql server database by ip

我正在做一個連接到位於同一網絡中的數據庫的應用程序。 DBMS是SQL Server 2005,我想測試ping到ip地址,然后通過ado.net測試與數據庫的連接:

 Ping p = new Ping();
            try
            {
                PingReply pingReply6 = p.Send(ip.Text);
                MessageBox.Show("IP: " + pingReply6.Address + " \n Etat : " + pingReply6.Status);
                string connexionString;
                connexionString = @"Data Source=Owner;Initial Catalog=base;Integrated Security=true;";
                IDbConnection connexion = new SqlConnection(connexionString);
                try { connexion.Open(); MessageBox.Show(" the connection is established "); }
                catch(Exception ex) { MessageBox.Show(ex.ToString()); }
            }
            catch { MessageBox.Show("Invalid IP"); }

如你所見,我想通過它adress ip連接到數據庫,我測試ping並且它工作但是當我在我的服務器中測試與我的數據庫的連接時它無法工作

  1. 連接字符串中的錯誤是什么?
  2. 如何更改連接字符串以連接到我自己的數據庫,而不是連接到指定地址ip(windows authentification)的其他數據庫?

使用SqlConnectionStringBuilder DataSource屬性分配給要連接的服務器名稱。 如果要打開ConnectionString從構建器中提取ConnectionString 這保證了正確格式化的連接字符串。

一般來說,使用IP是一種不好的做法。 使用計算機名稱。

ping測試與連接無關。 SQL連接可以使用與TCP / IP無關的協議(例如共享內存)。 Ping可能會失敗,具體取決於各種企業網ICMP設置。 Ping可以成功,但連接可能會因防火牆和IPSec規則而失敗。 TCP / IP連接不保證T-SQL連接。

這樣的事情可能有所幫助

connexionString = @"Data Source=" + pingReply6.Address +  "\Owner;Initial Catalog=base;Integrated Security=true;";

在你的上面. 在連接字符串中表示localhost

正如@RemusRusanu所說,IP地址被視為不良形式,但上述功能將起作用。 主機名會更好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM