Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OleDbDataAdapter空参数值_C#_Sql_Adapter - Fatal编程技术网

C# OleDbDataAdapter空参数值

C# OleDbDataAdapter空参数值,c#,sql,adapter,C#,Sql,Adapter,我必须对数据库进行非常复杂的查询。如果一个或多个参数为空,会发生什么情况?SQL会忽略它还是返回错误?我应该如何处理空参数?我对SQL非常陌生 OleDbDataAdapter adapter1 = new OleDbDataAdapter("SELECT ID FROM table WHERE age>? AND children>? ORDER BY children ASC", conection); adapter.SelectCommand.Parameters.A

我必须对数据库进行非常复杂的查询。如果一个或多个参数为空,会发生什么情况?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个参数

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);

假设年龄和子女始终为非负。

您可以检查该值,如果该值为null,则可以分配DBNull.value


你可以用年龄无效的年龄:价值。如果你的年龄为零,那么价值就是变量。谢谢你,我想我可以用这样的价值来填补空白。非常感谢!
if(age>0)
adapter.SelectCommand.Parameters.AddWithValue("p1",  age);
else
adapter.SelectCommand.Parameters.AddWithValue("p1",  DBNull.Value);