我发现我编写的大多数程序通常都包含DataTables
,并且我经常通过选择一个DataRow
(通过循环或 Linq)从表中提取数据,并通过编写以下内容来分配我的变量值:
MyVar = ThisDataRow.Item("itm")
这非常有效,除非特定项目是 aDBNull
在这种情况下它会引发错误。
现在,一个简单的解决方法是编写一个简单的函数 / if 语句,该语句要么返回值,要么返回值0
,""
但DBNull
我想知道以某种方式继承DataRow
对象并创建新属性ItemOrEmpty
(或其他你想调用它)不会引发错误并返回正确的值。
这将允许我使用:
MyVar = ThisDataRow.Item("itm")
或者
MyVar = ThisDataRow.ItemOrEmpty("itm")
取决于我是否想诱捕Nulls
。
我的问题是:
- 我不知道如何做到这一点并使 DataTable 使用这个新对象而不是 DataRow - 似乎我需要重载
DataRow
对象而不是创建新对象,但我不知道该怎么做。 - 这是一个好/坏主意吗?你为什么这么认为?
- 这会增加大量开销,而不仅仅是创建一个我
DataRow.Item
每次都运行的简单函数吗?
基本上,这是一个相当理论化的问题——这总体上是好还是坏,如何实现?
谢谢!!!