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

編集: code-project linkから、lstLocalInstances実際にはプロジェクト例のwin-form リスト ボックスコントロールのようです。 私のアドバイスは、ソースコードをダウンロードしてそのまま実行することです。

さらに、コードには次のようなものが必要です。

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

codeproject サイトのプログラマーは、簡潔にするために記事の本文からコードの一部を残しました。

記事の上部にある [ソースのダウンロード]リンクをクリックして、コンパイル可能な完全なコードを取得するか、不足している部分を自分で埋める必要があります。

于 2013-01-09T20:34:59.523 に答える