连接到SQL Server的本地实例时出错

时间:2013-01-09 20:09:04

标签: c# sql-server winforms

我从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);
    }
}

2 个答案:

答案 0 :(得分:2)

简而言之:为您的本地实例添加声明。如下例所示:

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);
    }
}

修改:在code-project link中,lstLocalInstances实际上是项目示例中的 win-form list-box 控件。我的建议是下载源代码并按原样运行。

此外,您的代码需要:

lstLocalInstances.Items.add(new ListBoxItem("name", "value"));

答案 1 :(得分:0)

程序员从代码的codeproject site左侧部分出来,为了简洁起见。

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