将字符串转换为int - datareader

时间:2012-11-05 15:04:06

标签: c# ado.net

试图找出如何将此zip字符串转换为int。我得到一个演员异常:

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

更新:

谢谢大家。这就是我提出的对我有用的东西:

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

2 个答案:

答案 0 :(得分:1)

您需要将其作为字符串获取,然后解析该字符串:

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

DataReaders期望字段的基础类型与您调用的特定方法相同。所以GetInt16需要一个底层的16位整数,GetBoolean需要一个底层位,而GetString需要一个底层字符串。它不会为你做任何转换。

答案 1 :(得分:0)

member.Zip = Convert.ToInt16(reader.GetString(ordinals[(int)Enums.MemberColumn.Zip]));