2011-06-17 11 views
3

マシン上でSQLのインスタンス名をすべて取得しようとしていますが、すべての値がregkeyに保持されていますが、ここではnullです。.GetValueNames()メソッドを使用したヌル参照例外

private void RegLoop() 
{ 
    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL") 
     foreach (var v in key.GetValueNames()) 
     { 
     MessageBox.Show("{0}", v); 
     } 
} 
+5

「Microsoft SQL Server」に2つのスペースがありますか?それは意図的ですか? – Oded

+0

はいキーパスは正しいですが、最初の値の名前が(デフォルト)である可能性がありますか?それはそれを台無しにするだろうか? – dotps1

+0

今、私はあなたが話していることを見ています。それはコピーと過去からのものです。私のacutalコードにはそれが含まれていません。良い目。 – dotps1

答えて

6

あなたがその例外を受け取った場合、それはkeynull値が含まれていることを意味します。したがって、あなたが探しているものが見つからないため、OpenSubKey()メソッドは何も返しませんでした。

+0

Raduが正しく、WOW6432Nodeのために間違った場所を探していましたが、見ているキーはWOW6432Nodeではなく、デフォルトの場所にあります – dotps1

関連する問題