0

私のユーザーテーブルには、というフィールドがAdminありtinyint(1)ます。管理者の場合は 1、通常のユーザーの場合は 0。

ユーザーがログインするときに、管理者かどうかに応じて true または false のセッション変数を設定したいと考えています。

if ((int)Reader["Admin"] == 0)
{
    HttpContext.Current.Session["Admin"] = false;
}
else
{
    HttpContext.Current.Session["Admin"] = true;
}

ReaderですSqlDataReader。コードは次のエラーを生成します。

System.InvalidCastException: 指定されたキャストは無効です。

Reader["Admin"]intに正しくキャストするにはどうすればよいですか?

4

3 に答える 3

3

これは、tinyintがSystem.Int32に明示的にキャストできないSystem.Byteに変換されるためです。

Convert.ToInt32(Byte)を使用する必要があります

于 2012-11-15T05:54:28.850 に答える
0

tinyintByteC#でに変換します。キャスト/条件をに変更します

 (Byte)Reader["Admin"] == 0
于 2012-11-15T05:53:17.300 に答える
0

以下のリンクを確認してください

c#でt-sqlの「tinyint」を整数に変換するにはどうすればよいですか?

CLR 型変換に関する MSDN リファレンス

于 2012-11-15T06:13:01.577 に答える