I will show you how to get connecting string stored in registry. The code which I will show in this blog will work both on 32 and 64 bit machines. Let's say your connectingstring key name is "MyAppConnectionStringKey" and stored at following path "SOFTWARE\MyApp\Settings" with following value "Initial Catalog=mydb;Server=MY-PC;User ID=sa;Password=test"
Goal:
To get the "MyAppConnectionStringKey" value via code.
Solution:
First of all add the following "RegistryHelpers" class in your solution. I have added few methods in this class to get registrykey and value.ide
using System; using Microsoft.Win32; namespace TestConsole { public class RegistryHelpers { public static RegistryKey GetRegistryKey() { return GetRegistryKey(null); } public static RegistryKey GetRegistryKey(string keyPath) { RegistryKey localMachineRegistry = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32); return string.IsNullOrEmpty(keyPath) ? localMachineRegistry : localMachineRegistry.OpenSubKey(keyPath); } public static object GetRegistryValue(string keyPath,string keyName) { RegistryKey registry = GetRegistryKey(keyPath); return registry.GetValue(keyName); } } }
Let's test this code with a console program to fetch the value of key:fetch
using System; namespace TestConsole { internal class Program { private static void Main(string[] args) { string keyPath = @"SOFTWARE\MyApp\Settings"; string keyName = "MyAppConnectionStringKey"; object connectionString = RegistryHelpers.GetRegistryValue(keyPath, keyName); Console.WriteLine(connectionString); Console.ReadLine(); } } }
Output:
this