自动将.net null转换为DBNull.Value

本文关键字:DBNull Value 转换 null net | 更新日期: 2023-09-27 18:06:03

我编写了一个实用程序来处理向数据参数添加值以进行手动sql查询。消费看起来像

utility.Add("SELECT * FROM MyTable WHERE MyColumn = {0}", myVariable, DBType.TheType);

utility.Add("UPDATE MyTable SET MyColumn = {0}", myVariable, DBType.TheType);

如何处理myVariable的空值?

  1. 所有值都应该是完全可信的。责任完全在消费者身上。消费者如何知道null将被处理呢?
  2. null永远不能工作,所以它应该抛出一个NullArgumentException。为什么要走得更远?
  3. null应该被自动解释为DBNull。因为这是唯一可行的解决方案。这是一个效用,对吧?使它可用,并使一些代码干涸!

可选的附加问题:如果这些论点是由三个政治候选人提出的,他们的政党是什么?(请注明当事人的原籍国)

自动将.net null转换为DBNull.Value

Rock the Null Coalescing Op:

在您的add中添加另一个parm =…实用程序。添加("SELECT * FROM MyTable WHERE MyColumn {0}{1}",myVariable DBType.TheType);

当你在Add方法中格式化字符串时:…=字符串。Format(sql,myVariable是否为空?)是":"=",myVariable ??"零"

你可能想要详细说明这一点,例如,坚持使用参数并抛出一个临时stringbuilder;可能还必须为类型使用?/:结构,无论在何处使用它。好运。

Null是一个有效的查询参数,您不需要将其转换为DBNull来在查询中使用它