I need to fetch the records based on a \'like\' match against a set of records,
The below query im using is not working . Does anyone knows what\'s wrong with the query?
What happens this way?
sqlCommand.CommandText = "SELECT * FROM Customer WHERE Name LIKE @Name;";
sqlCommand.Parameters.AddWithValue("@Name", "%" + searchString + "%");
You could also code it as follows to avoid all the wildcard formatting in the first place:
sqlCommand.CommandText = "SELECT * FROM Customer WHERE CHARINDEX(@Name, Name) > 0;";
sqlCommand.Parameters.AddWithValue("@Name", searchString);
If you're going to insist on doing it the unsafe way, at the very least double-up any single quotes found in searchString
, e.g.
searchString.Replace("'", "''")