0

我需要从数据库表中自动获取数据集,我使用了内部 Visual Studio 工具,在创建的数百万行之间,这是访问器方法之一:

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
        public string Referente {
            get {
                try {
                    return ((string)(this[this.tableCATALOGO_Cliente.ReferenteColumn]));
                }
                catch (global::System.InvalidCastException e) {
                    throw new global::System.Data.StrongTypingException("The value for column \'Referente\' in table \'CATALOGO_Cliente\' is DBNull.", e);
                }
            }
            set {
                this[this.tableCATALOGO_Cliente.ReferenteColumn] = value;
            }
        }

如您所见,此代码引用Referente列。当我需要获得一个泛型Referente时,如果不能发生,则会引发异常NULLreturn我解决了将 return 语句替换为以下内容的问题:

return this[this.tableCATALOGO_Cliente.ReferenteColumn] as string;

由于该表包含数百列,因此我将采用一种方法来自动执行此过程(即,我将生成一个DataSetwith 访问器方法,如果发生该方法不会引发异常IS NULL)。

4

1 回答 1

1

在数据集设计器中,选择(Empty)而不是(Throw Exception)NullValue 字段中。 在此处输入图像描述

如果在代码中访问数据集,则需要对数据行使用 IsxxxNull 方法:在此代码中,r 为数据行,_DateOpened 为 Nullable(日期的)

  If r.IsDateOpenedNull Then
        _DateOpened = Nothing
    Else
        _DateOpened = r.DateOpened
    End If
于 2013-10-09T22:02:50.787 回答