/// <summary>
/// 方法1:
/// 列出局域網中SQL Server服務器名
/// 需要using System.Data.Sql;
/// 此方法缺點:有重復項出現並且沒有排序
/// </summary>
public void ListSQLServers()
{
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
foreach (System.Data.DataRow row in table.Rows)
{
Console.WriteLine("服务器名 = {0}", row["ServerName"]);
Console.WriteLine("实例名 = {0}", row["InstanceName"]);
Console.WriteLine("是否集成验证 = {0}", row["IsClustered"]);//即Windows身份验证和SQL Server验证
Console.WriteLine("版本 = {0}", row["Version"]);//8.*是SQL 2000,9.*是SQL 2005
Console.WriteLine("============================");
this.comboBox1.Items.Add(row["ServerName"]);
}
}
/// <summary>
/// 方法2:
/// 列出局域網中SQL Server服務器名
/// 需要需要添加 COM 引用 "Microsoft SQLDMO Object Library"
/// </summary>
public void ListSQLServers2()
{
SQLDMO.NameList names;
SQLDMO.ApplicationClass ac = new SQLDMO.ApplicationClass();
names = ac.ListAvailableSQLServers();
string[] serverList = new string[names.Count];
for (int i = 0; i < serverList.Length; i++)
{
serverList[i] = names.Item(i);
}
foreach (string str in serverList)
{
Console.WriteLine(str);
if (str != null)
{
this.comboBox2.Items.Add(str);
}
}
Console.ReadLine();
}
/// <summary>
/// 得到指定SQL服务器(serverName)所有数据库的列表
/// 需要需要添加 COM 引用 "Microsoft SQLDMO Object Library"
/// </summary>
/// <param name="serverName">数据库服务器</param>
private void getDataBase(string serverName)
{
//得到指定SQL服务器(serverName)所有数据库的列表
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
srv.Connect(serverName, "sa", "1234");
foreach (SQLDMO.Database db in srv.Databases)
{
if (db.Name != null)
{
this.comboBox3.Items.Add(db.Name);
}
}
}
转载于:https://blog.51cto.com/levishow/552139