无法使用c#远程连接SQL Server 2005 Express

时间:2012-12-03 14:32:50

标签: c# remote-access sql-server-2005-express

我正在尝试使用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配置中的所有内容。一切都很好。

那我哪里错了?

2 个答案:

答案 0 :(得分:2)

这通常是2个问题中的一个。它可能是防火墙阻塞,最简单的测试方法是尝试telnet到SQL服务器端口(默认为1433)。

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

答案 1 :(得分:0)

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

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

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

如果要更改要侦听的端口;只需编辑“TCP / IP”的属性

塞尔