-1

我从以 c# 窗口形式连接到 SQL Server 的本地实例时收到了一些错误消息。

请帮忙,谢谢。

当前上下文中不存在名称“lstLocalInstances”

using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer.Management.Smo; 
using Microsoft.SqlServer.Management.Common;
using Microsoft.Win32;


RegistryKey rk = Registry.LocalMachine.OpenSubKey
        (@"SOFTWARE\Microsoft\Microsoft SQL Server");
String[] instances = (String[])rk.GetValue("InstalledInstances");
if (instances.Length > 0)
{
    foreach (String element in instances)
    {
        if (element == "MSSQLSERVER")
            lstLocalInstances.Items.Add(System.Environment.MachineName);
        else
            lstLocalInstances.Items.Add(System.Environment.MachineName + @"\" + element);
    }
}
4

2 回答 2

2

简而言之:为您的 Local 实例添加声明。就像在下面的示例中一样:

var lstLocalInstances = new List<string> {"instance1", "instance2"};
// the rest of the code where lstLocalInstances is used

RegistryKey rk = Registry.LocalMachine.OpenSubKey
        (@"SOFTWARE\Microsoft\Microsoft SQL Server");
String[] instances = (String[])rk.GetValue("InstalledInstances");
if (instances.Length > 0)
{
    foreach (String element in instances)
    {
        if (element == "MSSQLSERVER")
            lstLocalInstances.Items.Add(System.Environment.MachineName);
        else
            lstLocalInstances.Items.Add(System.Environment.MachineName + @"\" + element);
    }
}

编辑:代码项目链接中,看起来 lstLocalInstances实际上是项目示例中的一个win-form列表框控件。我的建议是下载源代码并按原样运行。

此外,您的代码需要类似:

lstLocalInstances.Items.add(new ListBoxItem("name", "value"));
于 2013-01-09T20:13:59.847 回答
0

为了简洁起见, codeproject 站点的程序员将部分代码从文章正文中删除。

您需要点击文章顶部的“下载源代码”链接以获取完整的可编译代码或自行填写缺失的部分。

于 2013-01-09T20:34:59.523 回答