数据映射问题NVARCHAR被转换为INT

本文关键字:转换 INT NVARCHAR 映射 问题 数据 | 更新日期: 2023-09-27 17:50:30

我的表中有一个字段是nvarchar,当在。net中映射时,它被转换为整数(测试值为'305415042-1')

测试失败,因为"当从一个数字转换时,该值必须小于无穷大"

如何显式强制转换或转换字段,以便它实际上将其作为字符串而不是尝试将其转换为int?

错误发生在BetReference(这个字段将不仅仅是数字,但对于当前的数据我有它是数字):

while (dr.Read())
{
  var b = new Bet
  {
      Id = (int) dr["Id"],
      BetTypeId = (int) dr["BetTypeId"],
      BetAmount = (decimal) dr["BetAmount"],
      BetAmountToWin = (decimal) dr["BetAmountToWin"],
      BetLocationId = (int) dr["BetLocationId"],
      BetReferenceNumber = (dr["BetReferenceNumber"]).ToString()
  };
  data.Add(b);
}

感谢

编辑:

问题实际上是由于DB中的数据类型是浮点数,我试图转换为十进制。

数据映射问题NVARCHAR被转换为INT

change

 BetReferenceNumber = (dr["BetReferenceNumber"]).ToString()

to be

 BetReferenceNumber = dr["BetReferenceNumber"].ToString()

或[如Arunprasanth KV所建议]

 BetReferenceNumber = Convert.ToString(dr["BetReferenceNumber"])