这是我以前做过的一个项目,但在丢失源代码之后,我正在重写这个。但我遇到了一个我之前没有遇到过的错误。 (有关信息:Column确实有一些空值。)
以下代码来自我的数据集设计器,在本例中为“BooksDataSet”。我在Return CType(Me(Me.tableBooks.AuthorColumn), String)
得到错误,说返回值是dbnull,因此无法转换为字符串类型。由于这是自动生成的代码,我认为没有理由出现此错误。
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property Author() As String
Get
Try
Return CType(Me(Me.tableBooks.AuthorColumn), String)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("The value for column 'Author' in table 'Books' is DBNull.", e)
End Try
End Get
Set(ByVal value As String)
Me(Me.tableBooks.AuthorColumn) = value
End Set
End Property
起初我想通过添加处理dbnul的代码块来处理它,如:
Try
If IsDBNull(Me.tableBooks.AuthorColumn) then
return String.Empty
Else : Return CType(Me.tableBooks.AuthorColumn, String)
EndIF
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("The value for column 'Author' in table 'Books' is DBNull.", e)
End Try
但是必须将代码块插入到每个部分中(表中有很多列我的代码我为了简单起见而跳过了。)这真的很无聊。
我可以插入上面的代码来处理dbnull但是每次构建我的解决方案时,该代码都会被自动生成。为许多不同的列添加那些代码是令人厌倦的。应该对数据集或我忽略的东西进行一些调整?
那么任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
只需编写ToString()
例如:
Me.tableBooks.AuthorColumn.ToString