我正在尝试在我的PC上运行SQL Server实例。
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable table = instance.GetDataSources();
foreach (DataRow row in table.Rows)
{
SqlInstanceCollection.Items.Add(row["ServerName"].ToString() + "\\" + row["InstanceName"].ToString());
SqlInstanceCollection.Text = SqlInstanceCollection.Items[0].ToString();
}
我面临的问题是,即使服务器正在运行,有时我也会得到实例,有时我也没有。
获取运行SQL Server的实例列表需要多长时间?
非常感谢任何帮助。
答案 0 :(得分:4)
:
由于SqlDataSourceEnumerator使用的机制的性质 在网络上定位数据源,该方法不会总是返回a 完整的可用服务器列表,列表可能不是 每次通话都一样。如果您打算使用此功能让用户 从列表中选择一个服务器,确保您始终也提供一个服务器 如果是服务器,则键入不在列表中的名称的选项 枚举不会返回所有可用的服务器。此外, 这种方法可能需要很长时间才能执行,所以 在性能至关重要的时候小心调用它。
SqlDataSourceEnumerator.GetDataSources Method
如他们的笔记所述,方法设计不可靠;)奇怪!
编辑:如果我必须解决类似问题,我会尝试使用带有正确参数集的Windows API NetServerEnum。这真的不是微不足道,但应该更可靠。