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

标签 asp.net mysql sql vb.net

不确定如何表达这个问题。让我解释一下我的问题,我正在查询一个具有账面值(value)和取消值的表,所以我执行以下操作:

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 转换为字符串,没关系。那么,我如何编写一个返回相同内容的查询,但不是将该列设置为“ 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 循环内部。

最佳答案

更改此行

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

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

关于asp.net - 在vb.net中,为什么读取mysql查询结果时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709459/

相关文章:

mysql - 安装QMYSQL驱动

c# - 无法安装包 'Microsoft.Owin.Security 2.0.1'

Mysql 从集合中排除子集

mysql - sql 获取两个表日期之间的所有日期

php - MySQL 数据库中带有 Codeigniter 和 Bootstrap 的下拉菜单

sql - 使用SQL Server 2005的最佳分页解决方案?

php - 如何从具有其他表条件的表中进行选择

asp.net - 使用 SVN 和 TeamCity 的 Web 应用程序部署工作流程

asp.net - 获取自动调整大小的控件的大小?

c# - 这些列目前没有唯一值