VB.Net - SQLDataReader 中的错误和“从类型 'DBNULL' 到类型 'Date' 的转换无效
VB.Net - Error in SQLDataReader and "Conversion from type 'DBNULL' to type 'Date' is not valid
我是 VB.Net 的新手,必须使用 VB.Net 做一个 "crash get 'er done" 项目。我已经找到了解决方法(仅用了 4 天),但现在 运行 遇到了一个严重的问题。
SQL 服务器数据库中有几个日期列,有些是 NULL。我正在尝试建立一个网格控件,并有一个自定义 class 来处理每个 "row".
的数据
我有一个 SQLDataReader 设置:
Using sdr As SqlDataReader = cmd.ExecuteReader()
错误触发于:
' this is an abbreviated statement of the original - many more values being passed
appsList.Add(New PromiseAppClass(sdr("PrimID"), sdr("lastname"),
sdr("firstname"), sdr("middleinitial"), sdr("othernames"),
sdr("ssn"), sdr("date1"), sdr("date2")))
date1 和 date2 在数据库中为 NULL,因此 reader 无法尝试转换以调用创建对象(我假设 - VB 不是太明确- 对我来说 - 详细说明问题出在哪里)。这两项都在 PromiseAppClass 中设置为日期,具有正常的 getters/setters.
如何解决?有没有一种方法可以在 class 中对特定变量进行编码,以便它可以在 tested/set 中?或者将上述语句中的 NULL 日期转换为可接受的日期的方法?我不想使用字符串,也不太确定我不会 运行 遇到同样的问题,但现在它无法将 NULL 转换为字符串。
尝试用
替换 sdr("date1")
If(sdr("date1") is nothing,nothing,sdr("date1"))
或
If(IsDbNull(sdr("date1")),nothing,sdr("date1"))
我是 VB.Net 的新手,必须使用 VB.Net 做一个 "crash get 'er done" 项目。我已经找到了解决方法(仅用了 4 天),但现在 运行 遇到了一个严重的问题。
SQL 服务器数据库中有几个日期列,有些是 NULL。我正在尝试建立一个网格控件,并有一个自定义 class 来处理每个 "row".
的数据我有一个 SQLDataReader 设置:
Using sdr As SqlDataReader = cmd.ExecuteReader()
错误触发于:
' this is an abbreviated statement of the original - many more values being passed
appsList.Add(New PromiseAppClass(sdr("PrimID"), sdr("lastname"),
sdr("firstname"), sdr("middleinitial"), sdr("othernames"),
sdr("ssn"), sdr("date1"), sdr("date2")))
date1 和 date2 在数据库中为 NULL,因此 reader 无法尝试转换以调用创建对象(我假设 - VB 不是太明确- 对我来说 - 详细说明问题出在哪里)。这两项都在 PromiseAppClass 中设置为日期,具有正常的 getters/setters.
如何解决?有没有一种方法可以在 class 中对特定变量进行编码,以便它可以在 tested/set 中?或者将上述语句中的 NULL 日期转换为可接受的日期的方法?我不想使用字符串,也不太确定我不会 运行 遇到同样的问题,但现在它无法将 NULL 转换为字符串。
尝试用
替换 sdr("date1") If(sdr("date1") is nothing,nothing,sdr("date1"))
或
If(IsDbNull(sdr("date1")),nothing,sdr("date1"))