自动将.Net null转换为DBNull.Value?

Sta*_*eck 5 .net c# sql database dbnull

我编写了一个实用程序来处理为手动sql查询添加数据参数的值.消费看起来像

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

要么

utility.Add("UPDATE MyTable SET MyColumn = {0}", myVariable, DBType.TheType);
Run Code Online (Sandbox Code Playgroud)

如何处理myVariable的空值?

  1. 所有值都应完全受信任.责任完全在于消费者.消费者如何知道无论如何都会处理null?
  2. null永远不会工作,所以它应该抛出NullArgumentException.为什么要进一步?
  3. null应该自动解释为DBNull.Value,因为它是唯一可行的解​​决方案.这是一个实用程序,对吗?使它可以使用并干掉一些代码!

可选的红利问题:如果这些论点是由三位政治候选人提出的,他们的政党会是什么?(请说明这些政党的母国)

Cha*_*ham 0

Null 是一个有效的查询参数,您无需将其转换为 DBNull 即可在查询中使用它。