DotNet 获取所有 SQL Server 的数据库实例名称

项目中需要对某些数据做定是同步,由于做了分库处理,所以需要获取到数据库中的所有实例,以下就是获取所有数据库实例的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/// <summary>
/// 获取指定 IP 地址的数据库所有数据库实例名。
/// </summary>
/// <param name="ip">指定的 IP 地址。</param>
/// <param name="username">登录数据库的用户名。</param>
/// <param name="password">登陆数据库的密码。</param>
/// <returns>返回包含数据实例名的列表。</returns>
private ArrayList GetAllDataBase(string ip, string username, string password)
{
    ArrayList DBNameList = new ArrayList();
    SqlConnection Connection = new SqlConnection(
        String.Format("Data Source={0};Initial Catalog = master;User ID = {1};PWD = {2}", ip, username, password));
    DataTable DBNameTable = new DataTable();
    SqlDataAdapter Adapter = new SqlDataAdapter("select name from master..sysdatabases", Connection);
 
    lock (Adapter)
    {
        Adapter.Fill(DBNameTable);
    }
 
    foreach (DataRow row in DBNameTable.Rows)
    {
        DBNameList.Add(row["name"]);
    }
 
    return DBNameList;
}

  

posted @   Charles Zhang  阅读(5778)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示