数据映射问题NVARCHAR转换为INT

时间:2015-05-24 06:33:56

标签: c# .net sql-server

我的表中有一个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中的数据类型是浮点数,而我试图转换为十进制。更改了列的数据类型并工作。

1 个答案:

答案 0 :(得分:1)

更改

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

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

或[建议Arunprasanth KV]

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