引用了COM 组件还是控件了的,添加了SQLDMO引用后,我写下面代码, 并可以列举出一两个本地网内的服务器,奇怪的是, 程序竟然不能发现本机子上的服务器..不知道为什么,
2 还有 它每次列举的情况不一定一样 ,,,(测试的时间间隔不长,) SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers(); for (int i = 0; i < sqlServers.Count; i++)
{
object srv = sqlServers.Item(i + 1); if (srv != null)
{
this.comboBox5.Items.Add(srv);
}
}
不知道哪会错以致于不能识别到本地服务器,
2 还有 它每次列举的情况不一定一样 ,,,(测试的时间间隔不长,) SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers(); for (int i = 0; i < sqlServers.Count; i++)
{
object srv = sqlServers.Item(i + 1); if (srv != null)
{
this.comboBox5.Items.Add(srv);
}
}
不知道哪会错以致于不能识别到本地服务器,
我也不大清楚. 还有 在程序开始运行时,有时可以列举出很多服务器(如5),可是 关了再开,却只能一个了,真怪!
还有,在2000AD系统与XP也不一样,2000AD里可以读到自己的服务器,可是以XP却读不到..不懂为什么...高手支招!!!
但感觉用起来一样..
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;
}
,他们申请对象和返回的不一样, 结果好像差不多...
serverlist = sqlapp.ListAvailableSQLServers();
MessageBox.Show(serverlist.Count.ToString ());
object srv = null;
for (int i = 0; i < serverlist.Count; i++)
{
srv = serverlist.Item(i+1);
if (srv != null)
this.lstServerName.Items.Add(srv.ToString());
}
看来网上只有这个了.....
看起来,代码都差不多..
明明有开SQL服务的,
不懂xp为什么不能边连SQL服务器,