UserInfo information class with a database
Why do you do this:

if (this._userInfo.ContainsKey(Key))
    this._userInfo.Add(Key, "");

this._userInfo[Key] = NewValue;


Those first two lines are completely superfluous; moreover if you need to get a value from a Dictionary&lt;T, T&gt; and aren't sure the key is present, you need to use Dictionary&lt;TKey, TValue&gt;.TryGetValue.



Local variables like Reader need to be camelCase. Ditto parameters like Key and NewValue.



Why aren't you using an ORM like Entity Framework instead of this ugly, needlessly generic code? I mean: public string GetString(string Key), public int GetInt(string Key) -- really?