データベースから生成された文字列キーと値を辞書オブジェクトに含めたいのですが。ただし、ページが読み込まれるときに1回だけ実行する必要があります。(C#.NET)
どのように私はそれを行うことができますか?私は次のことを試しました:
public static class GlobalVar
{
static Dictionary<string, string> GenerateLoginStatus(Dictionary<string, string> List)
{
string Query = "SELECT * FROM LoginStatus";
DataTable Types = MyAdoHelper.ExecuteDataTable(GlobalVar.dbName, Query);
foreach (DataRow Row in Types.Rows)
{
List.Add(Row["Status_Title"].ToString(), Row["Status_Info"].ToString());
}
return List;
}
public const string GlobalString = "ProjectDatabase.mdf";
public static Dictionary<string, string> LoginTypes = GenerateLoginStatus(LoginTypes);
}
テーブル構造:
Status_Title Status_Info
AlreadyLoggedIn User is already logged in.
A B
C D
そして、私はそれを別のページで使用します:GlobalVar.LoginStatus["AlreadyLoggedIn"]
「AlreadyLoggedIn」は確かにデータベースに作成されますが、いずれかのキーを呼び出すと、例外が返されます(どの例外かはわかりません)。
編集:コードを少し変更すると、「「GlobalVar」の型初期化子が例外をスローしました」というメッセージが表示されるようになりました。