我的数据库中有两个表:InvoiceDetail
和ProductDetail
。我想写一个搜索条件,如果我搜索产品或客户端,它将显示相关的发票。这是我的searchClickevent
代码。
错误The query syntax is not valid. Near term '>', line 6, column 136.
protected void SearchInvoiceButton_Click(object sender, EventArgs e)
{
String WhereClause = "it.UserID==@UserID AND it.IsDeleted == false AND (it.ClientDetail.ClientName LIKE '%' + @SearchTerm + '%') OR (it.InvoiceDetail.Any(p=>p.ItemName))";
EntityDataSourceInvoice.Where = WhereClause;
ViewState["InvoiceViewWhereClause"] = WhereClause;
if (EntityDataSourceInvoice.WhereParameters["SearchTerm"] != null)
{
EntityDataSourceInvoice.WhereParameters["SearchTerm"].DefaultValue = SafeSearchLiteral(SearchTextBox.Text.Trim());
}
else
{
Parameter CategoryParameter = new Parameter("SearchTerm", System.Data.DbType.String, SafeSearchLiteral(SearchTextBox.Text.Trim()));
CategoryParameter.ConvertEmptyStringToNull = false;
EntityDataSourceInvoice.WhereParameters.Add(CategoryParameter);
}
InvoiceGrid.DataBind();
InvoiceGrid.AllowPaging = false;
InvoiceGrid.AllowPaging = true;
}
答案 0 :(得分:0)
试试这个: -
我不知道class / table / EntityDatasource结构,但我想这应该可行,改变只是在哪里: -
String WhereClause = "it.UserID==@UserID AND it.IsDeleted == false
AND ((it.ClientDetail.ClientName LIKE '%' + @SearchTerm + '%')
OR (it.ItemName LIKE '%'+ @SearchTerm + '%'))";