我写这篇文章是为了在本地计算机上查找SQL Server实例:
using System;
using System.Data;
using Microsoft.SqlServer.Management.Smo;
namespace Application3
{
class Program
{
static void Main(string[] args)
{
string srvname = string.Empty; string srvnames = null;
DataTable dt = SmoApplication.EnumAvailableSqlServers(true);
Console.WriteLine("------------->" + dt.Rows.Count);
foreach (DataRow dr in dt.Rows)
{
try{
Console.WriteLine("-->Instance " + dr["name"]);
Server srv = new Server((string)dr["name"]);
foreach (Database db in srv.Databases)
Console.WriteLine(db.Name);
}catch(Exception e)
{
Console.writeLine(e.toString());
}
}
}
}
我的本地机器有3个实例
-
RK2K3虚拟机SR(SQL2008实例)
-
RK2K3虚拟机SR\sql2k8express(sql2k8安装)
-
RK2K3虚拟机SR\sqlexpress(sql2k5实例)
但它只显示了2和3。1不显示。当我使用服务器对象连接时,sql2k8express的连接失败。
这是输出……
-->实例rk2k3-vm-sr\sqlexpress
主人
模型
材料安全数据表
温度数据库
-->实例rk2k3-vm-sr\sql2k8express
Microsoft.SqlServer.Management.Common.ConnectionFailureException:无法连接
ect到服务器rk2k3-vm-sr\sql2k8express。--->microsoft.sqlserver.management.com网站
mon.connectionfailureexception:不支持此SQL Server版本(10.0)。
在microsoft.sqlserver.management.common.connectionmanager.checkserverversion
(服务器版本)
在Microsoft.sqlserver.management.common.connectionmanager.internalconnect(WI
NdowsIdentity模拟标识)
在Microsoft.sqlserver.management.common.connectionmanager.connect()
---内部异常堆栈跟踪结束---
在Microsoft.sqlserver.management.common.connectionmanager.connect()
在Microsoft.sqlserver.management.common.connectionmanager.poolconnect()
在Microsoft.sqlserver.management.common.connectionmanager.get\u服务器版本(
)
在Microsoft.sqlserver.management.smo.executionmanager.get_serverversion()
在Microsoft.sqlserver.management.smo.sqlsmoobject.getdbcomparer(布尔插入
服务器)
在Microsoft.sqlserver.management.smo.sqlsmoobject.InitializeStringComparer()上
在microsoft.sqlserver.management.smo.abstractcollectionbase.get_stringcompare
ER()
在microsoft.sqlserver.management.smo.simpleobjectcollectionbase.initinnercol
选择()
在Microsoft.sqlserver.management.smo.smocollectionbase.get_internalstorage()
在Microsoft.SqlServer.Management.Smo.SmoCollectionBase.InitializeChildCollec
操作(布尔刷新)
在Microsoft.sqlserver.management.smo.smoclectionbase.getEnumerator()上
在控制台应用程序3.program.main(string[]args)中的C:\文档和设置
GS\administrator.app\desktop\consoleApplication3\program.cs:第25行
我该怎么解决?我的系统防火墙已禁用,所有SQL服务都在运行。