【问题标题】:How to get a list of all (remote) database with the server name only?如何仅使用服务器名称获取所有(远程)数据库的列表?
【发布时间】:2016-09-14 10:44:26
【问题描述】:

我的要求是列出所有远程数据库,但我只知道服务器名称。

我正在使用下面的代码,它可以工作并返回本地主机上的所有数据库:

List<String> databases = new List<String>();
SqlConnectionStringBuilder connection = new SqlConnectionStringBuilder();
connection.DataSource = "localhost";
connection.IntegratedSecurity = true;
//connection.UserID = "";//
//connection.Password = "";//
String strConn = connection.ToString();
SqlConnection sqlConn = new SqlConnection(strConn);
sqlConn.Open();
DataTable tblDatabases = sqlConn.GetSchema("Databases");
sqlConn.Close();
foreach (System.Data.DataRow row in tblDatabases.Rows)
{
    String strDatabaseName = row["database_name"].ToString();
    databases.Add(strDatabaseName);
}

但是如何在没有登录信息的情况下获取其他服务器上的数据库?

【问题讨论】:

  • 显示错误,包括堆栈跟踪。您的代码与connection.DataSource = "localhost" 一起为我工作。我有 8 个数据库。
  • 请您使用其他机器服务器。它会抛出错误。
  • 什么错误?你还没有表现出来。如果您收到指示您无法登录的错误,则必须提供用户名和密码。
  • System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常附加信息:用户“ROOT\gokul.kandasamy”登录失败。
  • 如何解决这个错误?我不知道你的机器用户名、密码。然后如何获取您的数据库名称。请帮忙

标签: c# database-connection connection-string


【解决方案1】:
public List<string> GetDatabaseList()
{
    List<string> list = new List<string>();
    string conString = "server=ServerName;uid=sa;pwd=Password;";
    using (SqlConnection con = new SqlConnection(conString))
    {
        con.Open();
        using (SqlCommand cmd = new SqlCommand("SELECT name from sys.databases", con))
        {
            using (IDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    list.Add(dr[0].ToString());
                }
            }
        }
    }
    return list;
}

【讨论】:

  • 如何知道别人机器的用户名、密码?
  • 没有用户名、密码...需要windows认证才能访问其他机器的sql server。如果有,请将其更改为集成安全性。
  • 也试过这种方法。 Windows 身份验证采用了我们的系统用户密码。但是其他服务器命名此方法不起作用
  • 是的。它不起作用..您需要提供用户名和密码才能访问他们的 sql 服务器(或)您的用户名需要访问权限
猜你喜欢
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多