2

我的项目中有一个数据集设计器。

我生成的一个数据集有一列可以包含空值。数据库列本身可以包含空值。它通过另一列上的 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 安装,它可能相关也可能不相关。

4

1 回答 1

2

列名 NullValue 上有一个属性,默认情况下它设置为抛出异常。如果设置为 NULL 它应该可以工作。检查附件图像中的属性

于 2012-05-10T19:56:04.010 回答