【问题标题】:C# Connect to remote SQL Server and get DatabasesC# 连接到远程 SQL Server 并获取数据库
【发布时间】:2014-01-10 07:49:25
【问题描述】:

我目前能够连接到本地 SQL Server 实例并获取数据库列表。但是,我现在正在尝试连接到远程 SQL Server 实例并获取其数据库列表。

我似乎无法正确获取 SQLConnection。

using (var oSQLConnection = new SqlConnection("Data Source=123.45.67.890; User ID=sa; Password=password; ))

以下是我用于本地 SQL Server 连接的代码。

    private void btSQLListRefresh_Click(object sender, EventArgs e)
    {
        string sDatabaseName = "";
        using (var oSQLConnection = new SqlConnection("Data Source=localhost; Integrated Security=True;"))

        {
            oSQLConnection.Open();
            DataTable oDatabases = oSQLConnection.GetSchema("Databases");
            int iDBCount = oDatabases.Rows.Count;

            foreach (DataRow database in oDatabases.Rows)
            {
                sDatabaseName = database.Field<String>("database_name");
                short sDBID = database.Field<short>("dbid");
                DateTime dCreationDate = database.Field<DateTime>("create_date");

                if (sDatabaseName != "master" && sDatabaseName != "model" && sDatabaseName != "msdb" && sDatabaseName != "tempdb")
                {
                    lbSQLDBList.Items.Add(sDatabaseName);
                }
            }
        }
    }

错误:

ServerVersion 'oSQLConnection.ServerVersion' 抛出类型为 'System.InvalidOperationException' 字符串 {System.InvalidOperationException} 的异常

base {"无效操作。连接已关闭。"} System.SystemException {System.InvalidOperationException}

【问题讨论】:

  • 您收到的错误是什么?此外,您错过了连接字符串末尾的右引号。
  • + ServerVersion 'oSQLConnection.ServerVersion' 引发了类型为 'System.InvalidOperationException' 字符串 {System.InvalidOperationException} 的异常
  • + base {"无效操作。连接已关闭。"} System.SystemException {System.InvalidOperationException} 设置oSQLConnection后
  • 嗯,连接关闭是不言自明的。连接对象不再打开。尝试再次打开它,或重构连接对象不会超时或关闭。

标签: c# sql sql-server database-connection


【解决方案1】:

试试这个:

Data Source=123.45.67.890.100,+ [IP 访问端口号 ex: "1433"];Network Library=DBMSSOCN;Initial Catalog=master;User ID=sa;Password=password;

我认为您只是缺少用于访问的端口号。

【讨论】:

  • 如果是默认端口号就不需要指定了。
  • 其他信息:在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL
  • 由于某种原因,当我切换到本地服务器时,我可以毫无问题地连接。但是当我尝试连接到远程服务器时,我遇到了连接问题。此远程服务器允许远程连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
相关资源
最近更新 更多