C#对象和字符串转换
我的程序中有以下代码部分:C#对象和字符串转换,c#,C#,我的程序中有以下代码部分: object val; val = arr[1].Trim(); // in my case i am getting value here is 1.00 现在,当我给数据行赋值时,我得到了一个错误 应为int64值 我在获得1.00以外的值时不面临任何问题 到底是什么问题?我怎样才能解决它 欢迎提供建议和解决方案如果数据表中的该列需要Int64,则需要将val(字符串)转换为Int64: var val = arr[1].Trim(); // String
object val;
val = arr[1].Trim(); // in my case i am getting value here is 1.00
现在,当我给数据行赋值时,我得到了一个错误
应为int64值
我在获得1.00以外的值时不面临任何问题
到底是什么问题?我怎样才能解决它
欢迎提供建议和解决方案如果数据表中的该列需要
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
arr[1]似乎是字符串,application.Trim()将其作为字符串保留,即使它是“1.00”。如果你需要一个整数,你需要解析它。但是,它不能被解析为一个整数,因为它实际上是一个double 作为我是否正确的证明,您可以尝试(Int64)double.Parse(val),这应该可以工作。然而,这取决于你决定这是否是你的计划的一个问题。有两个可能的问题:
希望这有帮助数组的类型是什么?Int,String,foo?代码不足,无法给出有意义的答案。卓尔是什么?您是否使用一个数据行的内容来索引另一个数据行的列?col只是datatable的字符串列名,是的,Steve我正在使用一个数据行的内容来索引另一个数据行的列。thanx fro reply。。我用我的代码尝试了这一点,TryParse接受字符串,val是一个对象,因此获取错误类型的参数时出错。@Pramod-不,val是一个字符串-您只是将其键入为对象。我知道它是一个字符串,因为
Trim()
的返回值是一个字符串。在我的例子中,val可以有不同的值,可以有emailid、电话号码或金额,当它属于金额类别时,其值为1.00,我面临错误。它们都是int64吗?如果是这样,那么上面的内容就成立了,并且添加了一个更改,您需要先将该对象强制转换为string,即(Int64)double.Parse((string)val))
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