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 回答