0

このzip文字列をintに変換する方法を見つけようとしています。キャスト例外が発生します:

member.Zip = reader.GetInt16(ordinals[(int)Enums.MemberColumn.Zip]);

アップデート:

皆さんありがとう。これが私が思いついたもので、私にとっては十分に機能します:

Int32.TryParse(reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]), out number) ? number : 0;
4

2 に答える 2

1

文字列として取得し、その文字列を解析する必要があります。

string zipString = reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]);
member.Zip = Int16.Parse(zipString);

DataReaders は、フィールドの基になる型が、呼び出している特定のメソッドと同じであることを期待しています。したがって、GetInt16 には基になる 16 ビット整数が必要であり、GetBoolean には基になるビットが必要であり、GetString には基になる文字列が必要です。それはあなたのために何の変換も行いません。

于 2012-11-05T15:10:27.623 に答える
0
member.Zip = Convert.ToInt16(reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]));
于 2012-11-05T15:09:11.873 に答える