所以我即将创建我的第一个C#系统。我使用我的vb.net系统作为我的参考。
这是我的vb.net系统上的代码:
Dim value As Integer = Val(dt.Rows(0).Item("TransID"))
我不得不使用在线转换器,这就是我得到的:
int value = double.Parse(dt.Rows[0].Item[TransID]);
我在“项目”下得到了波浪线 - 告诉我
错误System.Data.DataRow'不包含'Item'的定义 并且没有扩展方法'Item'接受类型的第一个参数 可以找到'System.Data.DataRow'(你是否错过了使用 指令或程序集引用?)
可能是什么问题?
答案 0 :(得分:3)
该行应为
int value = double.Parse(dt.Rows[0]["TransID"].ToString());
dt.Rows[0]
返回第一行,dt.Rows[0]["TransID"]
从第一行返回“TransID”列的值object
。由于Parse
只需要字符串,而不是对象,因此您也需要ToString()
。
为避免ToString
您还可以使用以下内容,这样做会更好:
int value = (int)Convert.ToDouble(dt.Rows[0]["TransID"]);
答案 1 :(得分:2)
试试这个:
int value = double.Parse(dt.Rows[0]["TransID"]);
答案 2 :(得分:0)
dt.Rows[0]["TransID"]
这应该有效。
答案 3 :(得分:0)
试试这个......
int value = int.Parse(dt.Rows[0]["TransID"]);
答案 4 :(得分:0)
int value = int.Parse(dt.Rows[0]["TransID"]);
或者您也可以使用列索引:
假设所需列是数据表中的第3列:
int value = int.Parse(dt.Rows[0][2]);
答案 5 :(得分:0)
您还可以尝试DataRow上的Field Method,如下所示:
int value = dr.Rows[0].Field<int>("TransID");
http://msdn.microsoft.com/en-us/library/system.data.datarowextensions.field