我的C#代码如下所示:
myNum = dt.Columns[0];
myNum是一个整数,dt是一个数据表。 dt第0列中的值是一个字符串(“12”),但我想将其转换为整数。我怎样才能做到这一点? 我试过了:
myNum = int.Parse(dt.Columns[0]);
......但这不起作用。有什么想法吗?
答案 0 :(得分:26)
值存储在行而不是列中。试试这个:
myNum = int.Parse(dt.Rows[0][0].ToString());
答案 1 :(得分:7)
您的解析无效,因为parse方法接受一个字符串,并且数据作为一个简单对象返回。
此外,数据在行中,所以你有两个选项,(我更喜欢第一个):
// This converts the object directly to an integer
myNum = Convert.ToInt32(dt.Rows[0][0]);
// This converts the object to a string, and then parses it into an integer
myNum = int.Parse(dt.Rows[0][0].ToString());
答案 2 :(得分:3)
如果Parse抛出异常,这意味着dt.Columns [0]不是有效输入。如果你想避免异常,你可以使用int.TryParse返回一个布尔值,告诉转换是否成功完成
编辑:顺便说一句,Darin必须是正确的:您的值不会存储在列中但存储在单元格中
答案 3 :(得分:1)
使用TryParse方法解析值:
int myNum = 0;
int.TryParse(dt.rows[0][0].ToString() , out myNum);
使用上面的代码,如果发生错误,变量的值将为零
答案 4 :(得分:0)
Convert.ToInt32(dt.Rows[0][0])
如果您处理各种类型,例如双打(1.0),上述情况会更好。