不知道如何表达这个问题。让我解释一下我的问题,我正在查询一个具有账面价值和取消价值的表,所以我执行以下操作:
select book_value, cancel_value, (book_value - cancel_value) as total_value from mytable
在 mysql 工作台中,这正是我想要的。现在,当我从 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 循环内部。