我的项目中有一个数据集设计器。
我生成的数据集之一有一列可以包含空值。数据库列本身可以包含空值。它通过另一列上的 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
当它看到 null 时抛出 InvalidCastException。这太疯狂了。 当然会有空值。我在等他们。我没想到的是每次检查数据时都会抛出异常。
是否有任何方法可以提示设计器创建 String?
列而不是 String
列?我的意思是,按照我的思维方式,该列确实应该可以为空。
我正在连接到 SQL Server 9.0.50000 安装,这可能相关,也可能不相关。
最佳答案
列名 NullValue 有一个属性,默认设置为抛出异常。如果你设置为 NULL 它应该可以工作。
关于.net - 设计器生成的 DataSet 中的 NULL 值引发我不想要的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448365/