获取局域网中SQL SERVER服务器解决方案
获取局域网中SQL SERVER服务器
客户机上没有安装SQL SERVER我用
private string[] Getallservers()
{
string[] servers;
SQLDMO.NameList num;
SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
num = rs.ListAvailableSQLServers();
servers = new string[num.Count];
for (int i = 1; i <= num.Count; i++)
{
servers[i - 1] = num.Item(i);
}
return servers;
}
这种方法是不行的, 在SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
处会出错的,可能是客户机上没有安装SQL SERVER的缘故,有没有那种办法可以实现?
------解决方案--------------------
下面的控制台应用程序显示本地网络内的所有可用 SQL Server 2005 实例的列表。该代码使用 Select 方法筛选 GetDataSources 方法返回的表中的行。
客户机上没有安装SQL SERVER我用
private string[] Getallservers()
{
string[] servers;
SQLDMO.NameList num;
SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
num = rs.ListAvailableSQLServers();
servers = new string[num.Count];
for (int i = 1; i <= num.Count; i++)
{
servers[i - 1] = num.Item(i);
}
return servers;
}
这种方法是不行的, 在SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
处会出错的,可能是客户机上没有安装SQL SERVER的缘故,有没有那种办法可以实现?
------解决方案--------------------
下面的控制台应用程序显示本地网络内的所有可用 SQL Server 2005 实例的列表。该代码使用 Select 方法筛选 GetDataSources 方法返回的表中的行。
- C# code
using System.Data.Sql; class Program { static void Main() { // Retrieve the enumerator instance, and // then retrieve the data sources. SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance; System.Data.DataTable table = instance.GetDataSources(); // Filter the sources to just show SQL Server 2005 instances. System.Data.DataRow[] rows = table.Select("Version LIKE '9%'"); foreach (System.Data.DataRow row in rows) { Console.WriteLine(row["ServerName"]); } Console.WriteLine("Press any key to continue."); Console.ReadKey(); } }