我的项目中有许多新的向导创建的数据表,我需要从中提取数据。在这些表中有许多 字符串列的 dbnull 值 ,我想将它们提取为 空字符串 。
因此,我继续将每个 NullValue
的 DataColumn
属性与 DataType
的 System.String
从 (Throw exception)
更改为 (Empty)
,如下所示:
我很快就厌倦了所有的重复性工作,所以我尝试在我的应用程序的数据层中以编程方式设置 NullValue
。
然而,我什至无法找到这个属性。我什至反编译了 System.Data.DataColumn
的代码,并且那里似乎不存在 NullValue
属性。 NullValue
可能是 Microsoft.VSDesigner.Data.Design.DataColumnEditor
的一些神奇特性,但这只是目前的怀疑。
如何以编程方式实现与在属性编辑器中将 NullValue
设置为 (Empty)
相同的效果)?
最佳答案
需要明确的是:NullValue 不是 DataColumn 类的属性。这是 TableAdapter 代码生成器的一个方便设置,可以为每一列设置。在实践中,这意味着设置这个“属性”控制列的属性(公共(public)属性()的主体是如何生成的。例如,如果 NullValue 设置为 (空) 那么一个条件被添加到列中用于检查 null 并返回空字符串的属性代码。如果 NullValue 留给 (抛出异常),则属性定义中将省略此条件。
因此,确实没有设置此属性的编程方式,因为您无法在运行时更改 tableadapter 代码。但是,您可以在具有所需行为的 TableAdapter 的分部类中创建一个新属性(使用不同的名称,例如 MyColumnName_Safe)。只需确保在您的消费代码中调用正确的属性而不是自动生成的属性
关于c# - 如何以编程方式设置 ADO.Net DataTable 的 DataColumn 的 NullValue 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31070736/