2011-06-17 21 views
3

我想獲得一臺機器上的SQL的所有實例名稱,所有值都保存在一個regkey這裏是我的代碼,但我不斷收到一個空引用異常。與.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」中有兩個空格 - 這是故意的嗎? – Oded

+0

是的關鍵路徑是正確的,但它可能是因爲第一個值名稱是(默認)?那會搞砸了嗎? – dotps1

+0

現在我看到你在說什麼,這是從副本和過去,我的實際代碼不包含。好眼睛。 – dotps1

回答

6

如果您收到異常,這意味着key包含null值。因此,OpenSubKey()方法未返回任何內容,可能是因爲找不到您搜索的內容。

+0

Radu是對的,它在錯誤的地方查找,由於WOW6432Node,我看的關鍵點存在於默認位置,而不是在WOW6432Node – dotps1