我的项目中有一个数据集设计器。
我生成的一个数据集有一列可以包含空值。数据库列本身可以包含空值。它通过另一列上的 a 附加到核心表,该LEFT OUTER JOIN
列本身可以包含空值。
设计器生成的代码是这样的:
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property DeptName() As String
Get
Try
Return CType(Me(Me.tableEmployee.DeptNameColumn),String)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("The value for column 'DeptName' in table 'Employee' is DBNull.", e)
End Try
End Get
Set
Me(Me.tableEmployee.DeptNameColumn) = value
End Set
End Property
当它看到一个空值时抛出一个 InvalidCastException 。这太疯狂了。当然会有空值。我期待着他们。我没想到每次检查数据时都会抛出异常。
有什么方法可以提示设计者创建String?
列而不是String
列?我的意思是,按照我的思维方式,该列确实应该可以为空。
我正在连接到 SQL Server 9.0.50000 安装,它可能相关也可能不相关。