linq to sql 多条件组合查询
linq to sql 我这里查询tbdesk表内的记录 DeskTypeID和Name是条件
private void bind()
{
using (cpDataContext cp = new cpDataContext())
{
Expression<Func<tbDesk, bool>> expr = n => getc(n);
var xquery = cp.tbDesk.Where<tbDesk>(expr.Compile());
this.GridView1.DataSource= xquery;
GridView1.DataBind();
}
}
private bool getc(tbDesk tb)
{
//加等于true 或等于false
bool rst = false;
rst |= string.IsNullOrEmpty(TextBox1.Text.Trim()) ? false : tb.DeskTypeID.Equals(int.Parse(TextBox1.Text.Trim()));
rst |= string.IsNullOrEmpty(TextBox2.Text.Trim()) ? false : tb.Name.Contains(TextBox2.Text.Trim());
return rst;
//注释的这部分内容为多条件and的时候
//bool rst = true;
//rst |= string.IsNullOrEmpty(TextBox1.Text.Trim()) ? true : tb.DeskTypeID.Equals(int.Parse(TextBox1.Text.Trim()));
//rst |= string.IsNullOrEmpty(TextBox2.Text.Trim()) ? true : tb.Name.Contains(TextBox2.Text.Trim());
//return rst;
}
{
using (cpDataContext cp = new cpDataContext())
{
Expression<Func<tbDesk, bool>> expr = n => getc(n);
var xquery = cp.tbDesk.Where<tbDesk>(expr.Compile());
this.GridView1.DataSource= xquery;
GridView1.DataBind();
}
}
private bool getc(tbDesk tb)
{
//加等于true 或等于false
bool rst = false;
rst |= string.IsNullOrEmpty(TextBox1.Text.Trim()) ? false : tb.DeskTypeID.Equals(int.Parse(TextBox1.Text.Trim()));
rst |= string.IsNullOrEmpty(TextBox2.Text.Trim()) ? false : tb.Name.Contains(TextBox2.Text.Trim());
return rst;
//注释的这部分内容为多条件and的时候
//bool rst = true;
//rst |= string.IsNullOrEmpty(TextBox1.Text.Trim()) ? true : tb.DeskTypeID.Equals(int.Parse(TextBox1.Text.Trim()));
//rst |= string.IsNullOrEmpty(TextBox2.Text.Trim()) ? true : tb.Name.Contains(TextBox2.Text.Trim());
//return rst;
}