试图弄清楚如何将此 zip 字符串转换为 int。我得到一个演员异常:
member.Zip = reader.GetInt16(ordinals[(int)Enums.MemberColumn.Zip]);
更新:
谢谢大家。这是我想出的对我来说足够好的方法:
Int32.TryParse(reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]), out number) ? number : 0;
您需要将其作为字符串获取,然后解析该字符串:
string zipString = reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]);
member.Zip = Int16.Parse(zipString);
DataReaders 期望字段的基础类型与您调用的特定方法相同。因此 GetInt16 需要一个底层 16 位整数,GetBoolean 需要一个底层位,GetString 需要一个底层字符串。它不会为你做任何转换。
member.Zip = Convert.ToInt16(reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]));