Ich habe den folgenden Code:Verwendung von SqlParameter in SQL LIKE-Klausel nicht funktioniert
const string Sql =
@"select distinct [name]
from tblCustomers
left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId
where (tblCustomer.Name LIKE '%@SEARCH%' OR tblCustomerInfo.Info LIKE '%@SEARCH%');";
using (var command = new SqlCommand(Sql, Connection))
{
command.Parameters.AddWithValue("@SEARCH", searchString);
...
}
dies nicht funktioniert, habe ich versucht, dies auch:
const string Sql =
@"select distinct [name]
from tblCustomers
left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId
where (tblCustomer.Name LIKE @SEARCH OR tblCustomerInfo.Info LIKE @SEARCH);";
using (var command = new SqlCommand(Sql, Connection))
{
command.Parameters.AddWithValue("@SEARCH", "'%" + searchString + "%'");
...
}
aber auch nicht funktioniert . Was läuft falsch? Irgendwelche Vorschläge?
command.Parameters.AddWithValue (“ @SEARCH ","% "+ Suchstring +"% "); Arbeitete, die zusätzlichen einfachen Anführungszeichen waren das Problem, wie von Ihnen hingewiesen – Ngm
Doing es der zweite Weg sieht besser für mich, weil die endgültige Aussage wird in der Tat ordentlich aussehen. – Javid
Dies funktioniert nicht korrekt, wenn der Suchstring die Zeichen '%' '_' oder '[' enthält, vorausgesetzt, Sie möchten nach einem dieser Zeichenliterale suchen. Für eine 100% ige Lösung müssen Sie diese Zeichen in die Suchzeichenfolge in Klammern '[]' einfügen. Der C# -Code 'Regex.Replace (searchString, @" ([% _ \ []) ", @" [$ 1] ") macht den Trick. –