.net - 设计器生成的 DataSet 中的 NULL 值引发我不想要的异常

标签 .net sql-server database dataset

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

我生成的数据集之一有一列可以包含空值。数据库列本身可以包含空值。它通过另一列上的 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 它应该可以工作。 Check the property in Attached image

关于.net - 设计器生成的 DataSet 中的 NULL 值引发我不想要的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448365/

相关文章:

.net - 如何将 C++ 字符串转换为 .NET 字符串^?

sql-server - 将 listbox.recordset 设置为 ADODB 记录集会在使用列表框时导致崩溃

sql-server - 如何在公用表表达式 (CTE) 中引用同一服务器内多个数据库中的表?

sql - 简化数据库 ER 图/模式

php form update mysql database 编辑一条记录后返回所有数据库记录

c# - 如何裁剪字节数组图像

.net - .NETStandard1.6 PCL : "Your project is not referencing the ". NETPlatform 的错误,版本=v5。 0"framework"

.net - MSBuild ItemGroup,不包括 .svn 目录和文件

sql-server - 使用本地表中的数据插入链接服务器上的表

mysql - 为什么InnoDb不支持聚集主键的auto_increment