3

すべて、から値を取得するエレガントな方法を見つけようとしていますDataRow。以下は私が試した方法です。それを見直してください。そして、それは十分ではないと思います。取得したいフィールドの数が多いと冗長になるためです。もっと良いアイデアはありますか?ありがとう。

  int result = -1;

  if (row["intCol"] != null)
  {
      bool bresult = int.TryParse(row["intCol"].ToString(), out result);
  }

更新しました

DBのintColデータ型は null 許容文字列です。

更新しました

DBNullをチェックして変数に代入する最も効率的な方法から見つけましたか?

乾杯。

4

3 に答える 3

1

Convert を使用できます (特に、型が BIGINT、SMALINT、.. の場合)。

 var i = Convert.ToInt32(row["intCol"]); // i is a int

NULL を 0 に変換することに注意してください。

DB タイプが INT (BIGINT、SMALINT などではない) であることが確実な場合は、「as」を使用します (DB NULL は null 参照になります)。

 var i = row["intCol"] as int?; // i is a nullable int
于 2013-06-10T08:06:21.220 に答える