** 3.1获取局域网可用服务器列表 **
在设计软件的时候,我们常常为软件的易用性而绞尽脑汁。我们想到的是客户。使客户获得最友好的软件界面是我们孜孜追求的。所以在制作一个数据库连接配置程序的时候,必然的,我们会需要让客户选择服务器名,输入用户名、密码等。在网上关于 SQLDMO 提问最多的也是如何获得局域网可用服务器列表信息。下面就来介绍以下如何获取可用服务器列表。
在这里,我们用到的第一个对象是 SQLDMO.ApplicationClass() ,通过这个对象,我们可以获得数据库实例列表,获得 SQL-DMO 的版本号和设置 blocking time-out (注 2.1.1 )。在这里,我只讲述如何获取数据库实例列表。代码如下:
/**/ ///
1<summary>
2 /// 获得局域网可用服务器列表
3 /// </summary>
///
1<returns> 局域网可用服务器列表 </returns>
public ArrayList GetServerList()
{
SQLDMO.ApplicationClass oApp = new SQLDMO.ApplicationClass();
ArrayList alTemp = new ArrayList();
try
{
SQLDMO.NameList iServerList = oApp.ListAvailableSQLServers();
if ( iServerList != null )
{
for ( int i = 1 ; i <= iServerList.Count; i ++ )
{
alTemp.Add( iServerList.Item(i).ToString() );
}
}
return alTemp;
}
catch
{
return null ;
}
}
在上面代码中,我们调用了 ListAvailableSQLServers() 这个方法。它将一个当前局域网可用服务器实例的列表返回给 SQLDMO.NameList 接口。通过接口就可以得到所有的服务器名了。
( 注意:在使用该方法是需要打上SQLSERVER2000SP3这个补丁,不然会出现接口SQLDMO.NameList 的 QueryInterface 失败的错误。 )