Il y a deux tables dans ma base de données: InvoiceDetail
et ProductDetail
. Je veux écrire une condition de recherche dans laquelle si je recherche un produit ou un client, il affichera la facture correspondante. Voici mon code pour searchClickevent
.Comment convertir un unicode en requête linq?
Il est de donner une erreur The query syntax is not valid. Near term '>', line 6, column 136.
protected void SearchInvoiceButton_Click(object sender, EventArgs e)
{
String WhereClause = "[email protected] 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;
}
't.InvoiceDetail.Any (p => p.ItemName)' n'est pas valide SQL. Dans quelle base utilisez-vous cette base de données? – flindeberg
Vous ne pouvez pas utiliser LINQ dans la clause SQL where. La même chose s'applique à 'it.UserID == @ UserID' - c'est C#, pas SQL. Je pense que vous confondez LINQ et SQL ... Pourquoi utilisez-vous SQL personnalisé de toute façon? Il ne semble pas y avoir de raison de le faire. – Luaan
assez sûr que cela n'a absolument rien à voir avec "unicode"; vouliez-vous dire "lambda"? –