繁体   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