我的程序中有以下代码部分:
object val;
val = arr[1].Trim(); // in my case i am getting value here is 1.00
现在,当我为数据行分配值时,我收到错误
预期的int64值。
datarow[Convert.ToString(drow["col"]).Trim().ToUpper()] = val;
在获得1.00的其他价值时,我没有遇到任何问题。
可能是什么问题?我该如何解决?
欢迎提出建议和解决方案
答案 0 :(得分:0)
如果数据表中的该列期望Int64
,则需要将val
(这是一个字符串)转换为Int64:
var val = arr[1].Trim(); // String at this point
long longVal = 0;
if(!long.TryParse(val,out longVal){
throw new InvalidOperationException("value wasnt an Int64!");
}
datarow[Convert.ToString(drow["col"]).Trim().ToUpper()] = longVal
答案 1 :(得分:0)
arr [1]似乎是字符串,并且应用.Trim()将其保持为字符串,即使它是“1.00”。如果需要整数,则需要解析它。但是,它无法解析为intteger,因为它实际上是双重的。
作为我是否正确的证明,您可以尝试(Int64)double.Parse(val),这应该工作。但是,您可以自行决定这不是您的计划的问题。有两个可能的问题:
希望这有帮助