数据表包含名为Fld_primary的列。此列包含的值如0.00它是mysql table中的double数据类型。我希望将该数据表值存储在double变量中。当我转换为double数据类型时总是会出错。
my code
-------
Dim ds5 As dataset1.DTSUMDataTable = TA5.GetData(users)
Dim dttot As Double
dttot = CType(ds5("fld_primary").ToString, Double)
Conversion from string "fld_primary" to type 'Integer' is not valid.
答案 0 :(得分:3)
使用最近的屏幕上限编辑@ 3:01 AM。
有时候我发现自己会根据人们的答案第二次猜测某些代码,但我继续花时间检查他们所使用的代码是否有效:
正如您所看到的那样,代码是不行的,所以我使用了您在底部看到的正确代码来引用列。
但是,如果您希望获得单个单元格,请使用下面使用foreach循环的代码块(其余部分是我的基本设置,以向您展示它是如何工作的):
“Y”将等于数据表单元格的值,您可以使用Double.Parse()方法转换它:
Dim y = Double.Parse(zDataRow("cat").ToString())
要小心,如果你有多行,你会注意到y的值会随着它遍历所有行而改变。
答案 1 :(得分:3)
您可以使用Convert
类转换它。
Dim dttot As Double = Convert.ToDouble(ds5("fld_primary"))
答案 2 :(得分:1)
您的错误实际上是:ds5
需要一个整数作为参数,因此使用ds5("fld_primary")
在您的代码中无效。也许你可以尝试ds5(0)("fld_primary")
。
修复后,使用
dttot = Double.Parse(whatever_string_you_should_put_here)
如果您无法确保字符串必须是有效double
,请使用Double.TryParse
。
答案 3 :(得分:1)
你最好使用'Double.TryParse'转换方式,因为它可以更好地处理任何错误,如果成功或不成功则简单地返回一个布尔值,使用'parse'将抛出一个不在任何地方的优雅。
Dim dub as Double = 0
Double.TryParse("Your String Here", dub)
答案 4 :(得分:0)
尝试使用Double.TryParse(text,value)
答案 5 :(得分:0)
尝试使用此:
For a=0 to yourgridview.rows.count-1
Yourgridview.rows(a).cells(targetcolumnnumber).value=cdbl(Yourgridview.rows(a).cells(targetcolumnnumber).value)
Next