項目中需要對某些數據做定是同步,由於做了分庫處理,所以需要獲取到數據庫中的所有實例,以下就是獲取所有數據庫實例的方法:
/// <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;
}
