我的项目中有许多新的向导创建的数据表,我需要从中提取数据。在这些表中有许多 字符串列的 dbnull 值 ,我想将它们提取为 空字符串

因此,我继续将每个 NullValueDataColumn 属性与 DataTypeSystem.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/

10-12 12:45
查看更多