这里的典型方法是:
var query = new StringBuilder();
query.Append("select ... From ... Where 1=1");
if(fooHasValue) {
query.Append(" and Foo = @foo");
cmd.Parameters.AddWithValue("foo", foo);
}
if(barHasValue) {
query.Append(" and Bar = @bar");
cmd.Parameters.AddWithValue("bar", bar);
}
cmd.CommandText = query.ToString();
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
我使用LINQ;
IQueryable<Whatever> query = ctx.TheTable;
if(fooHasValue)
query = query.Where(x => x.Foo == foo);
if(barHasValue)
query = query.Where(x => x.Bar == bar);
foreach(var row in query) {...}
Run Code Online (Sandbox Code Playgroud)