0

我正在尝试使用 c# 远程连接到 SQL Server 2005 Express 版本,但它引发了异常。

与 SQL Server 建立连接时发生网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确,并且 SQL Server 已配置为允许远程连接。(提供者:名称管道提供者,错误:40 - 无法打开与 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 配置中的所有内容。一切都很好。

那么我哪里错了?

4

2 回答 2

2

这通常是 2 个问题之一。这可能是防火墙阻止,最简单的测试方法是尝试远程登录到 SQL 服务器端口(默认为 1433)。

另一个经常出现的问题是 SQL server express 上没有启用正确的协议。这是如何做到这一点的一个很好的描述。 http://www.teratrax.com/connecting-sql-server-express/

于 2012-12-03T14:47:12.903 回答
0

在客户端计算机上,尝试停用防火墙。

在服务器计算机上,停用防火墙,但还要检查您是否为所需的 MSSQL 实例激活了 TCP/IP 协议:

  • 应用程序“Sql Server 配置管理器”
  • 展开节点“SQL Server 网络配置”
  • 单击“XXXXXXX 上的协议”(选择所需的 SQL 实例)
  • 右键/单击 TCP/IP 并选择“启用”

如果你想改变端口来监听;只需编辑“TCP/IP”的属性

哔叽

于 2012-12-03T14:57:10.457 回答