+ -
当前位置:首页 → 问答吧 → 怎么把reader读到得DBnull数据类型转换double类型

怎么把reader读到得DBnull数据类型转换double类型

时间:2011-12-15

来源:互联网

''' <summary>
  ''' 根据用户标示符获取用户记录
  ''' </summary>
  ''' <param name="orderld ">用户标示符</param>
  ''' <returns>返回Userinfo对象。如果用户不存在就返回Nothing</returns>
  ''' <remarks></remarks>
  Public Function GetExpense(ByVal orderld As String) As AllexpenseInfo
  Dim engin As New MyDbEngine
  Dim cmdText As String
  cmdText = "select*from 消费总单 where 手工单号=" & orderld
  engin.OpenConnect() '打开数据库连接
  Dim reader As Common.DbDataReader = engin.ExecuteReader(cmdText)
  '判断是否存在记录
  If IsNothing(reader) Then
  engin.CloseConnect()
  Return Nothing
  End If
  If reader.Read Then
  Dim aExpense As New AllexpenseInfo
  aExpense.Orderld = reader("手工单号").ToString.Trim()
  aExpense.UserName = reader("操作员").ToString.Trim()
  aExpense.Memname = reader("会员姓名").ToString.Trim()
  aExpense.DishDiscount = reader("折扣")
  aExpense.HotDish = reader("热菜总额")
  aExpense.CodeDish = reader("凉菜总额")
  aExpense.DrinksDish = reader("酒水总额")
  aExpense.CakeDish = reader("糕点总额")
  aExpense.AllDish = reader("消费总额")
  reader.Close()
  engin.CloseConnect()
  Return aExpense
  End If
  Return Nothing
  End Function
在这里面的“折扣”等都是列名 在SQL里面设置的double类型 aExpense.HotDish aExpense.AllDish aExpense.DrinksDish 等都是在VB里的double类型的
默认值是0.0 读出来之后就变string类型了
然后赋给那些类的double变量就说无法强制转化 
CDbl函数也不行的

作者: ywhyf1988   发布时间: 2011-12-15

1.发错版块了。
2.先判断读回的记录不等于DBNull.Value再进行转换。

作者: zjl1234567   发布时间: 2011-12-16