数据映射问题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中的数据类型是浮点数,我试图转换为十进制。
change
BetReferenceNumber = (dr["BetReferenceNumber"]).ToString()
to be
BetReferenceNumber = dr["BetReferenceNumber"].ToString()
或[如Arunprasanth KV所建议]
BetReferenceNumber = Convert.ToString(dr["BetReferenceNumber"])