多个字段搜索

Sna*_*ake 2 c# database

我将开发基于C#表单的桌面应用程序,我正在开发一个搜索模块.搜索条件是如果该字段为空,则保留该字段,如果填写了两个或两个以上的字段,则搜索结果将显示为AND所有字段.我无法对此进行查询.请帮帮我

Mar*_*ell 5

这里的典型方法是:

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)