任何人都可以在下面的代码中解释我的错误:
DataTable dt=SmoApplication.EnumAvailableSqlServer(true); Server sr = new Server("Test"); foreach(DataBase db in sr.DataBases) { Console.WriteLine(db["name"]); }
它给出了一个sr.Databases
不能连接的例外.
看看以下链接,他们可能会有所帮助:
使用ODBC在C#中枚举SQL Server实例
如何使用C#(MSDN)获取可用SQL Server的列表
填充SQL Server列表
或者,您可以将代码更改为:
DataTable dt = SmoApplication.EnumAvailableSqlServers(false); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { Console.WriteLine(dr["Name"]); } }
希望这能解决你的问题.
你有一个实例名称为Test的SQL Server 吗?如果没有,那就是你的问题.
看起来您正在尝试枚举所有本地SQL Server实例.如果是这样,这段代码将起作用:
DataTable dt = SmoApplication.EnumAvailableSqlServers(true); foreach (DataRow dr in dt.Rows) { Console.WriteLine(dr["Name"]); Console.WriteLine(" " + dr["Server"]); Console.WriteLine(" " + dr["Instance"]); Console.WriteLine(" " + dr["Version"]); Console.WriteLine(" " + dr["IsLocal"]); }