0

列の 1 つに整数を持つデータ行があります。ただし、次のコードは true と評価されません。なぜか理解に苦しむ。私は何が欠けていますか?

foreach (DataRow dr in dataset.Tables[0].Rows)
{
    //this evaluates as false, even when I have a valid castable INT value in the column (as an object).
    if (dr[3] is int)
    {
        if (Convert.ToInt32(dr[3]) == 3)
        {
            //do something with row

        }
        else if (Convert.ToInt32(dr[3]) == 4)
        {
            //do someting else with row

        }
    }
}
4

1 に答える 1

3

他の人が言ったように、おそらく int に変換できる文字列がありますが、int にキャストすることはできません。

これを試して:

int val;

if (Int32.TryParse(dr[3].ToString(), out val)) {
于 2013-02-08T17:28:46.337 に答える