在vb.net中,为什么在读取mysql查询结果时会出错?

时间:2013-07-17 20:20:19

标签: asp.net mysql sql vb.net

不确定如何说出这个问题..让我解释一下我的问题,我正在查询一个有账面价值和取消价值的表,所以我做了以下几点:

select book_value, cancel_value, (book_value - cancel_value) as total_value from mytable

在mysql workbench中,这正是我想要的。现在,当我从vb.net查询时,我收到以下错误:

System.InvalidCastException: Conversion from string "total_value: " to type 'Double' is not valid. ---> 
System.FormatException: Input string was not in a correct format.   
at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)   
at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat) 
  --- End of inner exception stack trace ---   at  Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
  at Microsoft.VisualBasic.CompilerServices.Operators.AddObject(Object Left, Object Right)   
at cust_info_Default2.Page_Load(Object sender, EventArgs e) 
in line 32

好的,所以我无法将双精度转换为字符串,这很好。那么我如何编写一个返回相同内容的查询,但不是将该列设为“double”,而是以字符串形式返回?

非常感谢任何其他想法!

编辑: 提出错误的代码是

        cmd.CommandText = "select book_value, cancel_value, (book_value - cancel_value) as total_value from mytable"
        reader = cmd.ExecuteReader()

编辑2: 没有采取正确的部分提出例外...抱歉混乱!

listy.Items.Add(col_list(u) + ": " + reader(col_list(u)))

col_list包含阅读器返回的列名。 u是我在for循环中使用的变量。和listy是一个像

一样创建的列表框
Dim listy As New ListBox

在for循环中。

1 个答案:

答案 0 :(得分:0)

更改此行

listy.Items.Add(col_list(u) + ": " + reader(col_list(u)))

listy.Items.Add(col_list(u) & ": " & reader(col_list(u)))