如果一个或多个参数为空,我必须对database.What进行一个相当复杂的查询? SQL会忽略它还是返回一个错误?我应该如何处理空参数?我对SQL还是个新手。
OleDbDataAdapter adapter1 = new OleDbDataAdapter("SELECT ID FROM table WHERE age>? AND children>? ORDER BY children ASC", conection);
adapter.SelectCommand.Parameters.AddWithValue("p1", age);
adapter.SelectCommand.Parameters.AddWithValue("p2", number_of_children);除了为每种情况编写不同的查询外,当我有一个空的(null内容)参数时,我如何处理查询?
编辑:这只是一个简单的例子,我的查询大约有5个参数
发布于 2014-06-19 22:28:09
x > null将始终为false。因此,如果您的任何一个参数值为null,您将不会得到任何记录。你可以这样做:
OleDbDataAdapter adapter1 = new OleDbDataAdapter(
"SELECT ID FROM table WHERE (age> NVL(?,-1)) AND (children> NVL(?,-1) ORDER BY children ASC", conection);
adapter.SelectCommand.Parameters.AddWithValue("p1", age);
adapter.SelectCommand.Parameters.AddWithValue("p2", number_of_children);假设age和children总是非负的。
发布于 2014-06-19 22:28:33
您可以检查该值,如果该值为null,则可以将DBNull.Value
if(age>0)
adapter.SelectCommand.Parameters.AddWithValue("p1", age);
else
adapter.SelectCommand.Parameters.AddWithValue("p1", DBNull.Value); https://stackoverflow.com/questions/24308985
复制相似问题