C# 获取本地sql server的实例名称
我完全不知道如何获取本地sql server实例。我只收到服务器名。以下是我尝试过的不同方法:C# 获取本地sql server的实例名称,c#,sql-server-2008,C#,Sql Server 2008,我完全不知道如何获取本地sql server实例。我只收到服务器名。以下是我尝试过的不同方法: DataTable availableServers = SmoApplication.EnumAvailableSqlServers([All of the 3 inputs]); foreach (DataRow serverRow in availableServers.Rows) { // foreach row list "Name", "Server", "Instance" e
DataTable availableServers = SmoApplication.EnumAvailableSqlServers([All of the 3 inputs]);
foreach (DataRow serverRow in availableServers.Rows)
{
// foreach row list "Name", "Server", "Instance" etc...
}
及
及
是否有其他方法可以获取本地sql server实例名称
我知道,在management studio中连接到SQL server时,“连接”对话框会将我的本地实例显示为。\sqlexpress或(本地)\sqlexpress。此外,在InstallShield中部署数据库安装时,InstallShield“定位sqlserver”对话框会为我的本地主机获取正确的实例。他们做得对吗?发布的第二个代码示例已经到了一半。返回的DataTable将有4列(列集合) 服务器名 实例名 杂乱无章 版本 您可以通过枚举此集合来获取DataTable中的值,如下所示
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
}
你可以用
我留下这些台词是因为我只想展示我使用的技术。问题在于InstanceName是空的。请检查防火墙和SQL Server浏览器服务。请参阅,无法按我希望的方式修改防火墙。用ManagedComputer解决了这个问题。不管怎样,谢谢你的回复。太好了,想在你的专栏文章中发布这个方法吗?这是我在问题中展示的第三次尝试。名称为空。可能是配置问题。我假设实例在同一台机器上?你试过设置吗?mc.ConnectionSettings.ProviderArchitecture=ProviderArchitecture.xxx非常感谢!必须设置ProviderArchitecture.use64位
ManagedComputer mc = new ManagedComputer();
ServerInstance instance = mc.ServerInstances;
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
}
using Microsoft.SqlServer.Management.Smo.Wmi;
....
ManagedComputer mc = new ManagedComputer();
foreach (ServerInstance si in mc.ServerInstances)
{
Console.WriteLine("The installed instance name is " + si.Name);
}