varios una tabla sentencia registros operadores operador masivo incluye extremos ejemplos clausula buscar c# sql-server tsql ado.net sql-like

c# - una - El uso de SqlParameter en la cláusula SQL LIKE no funciona



operadores sql y ejemplos (3)

En lugar de usar:

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%'');";

Usa este código:

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 + ''%'');";

Tengo el siguiente código:

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); ... }

Esto no funciona, intenté esto también:

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 + "%''"); ... }

pero esto no funciona tan bien. ¿Qué está pasando mal? ¿Alguna sugerencia?


Lo que quieres es:

tblCustomerInfo.Info LIKE ''%'' + @SEARCH + ''%''

(o edite el valor del parámetro para incluir el% en primer lugar).

De lo contrario, estás (primera muestra) buscando el literal "@SEARCH" (no el valor arg), o estás incorporando algunas comillas adicionales en la consulta (segunda muestra).

De alguna manera, podría ser más fácil hacer que el TSQL simplemente use LIKE @SEARCH y manejarlo en la persona que llama:

command.Parameters.AddWithValue("@SEARCH","%" + searchString + "%");

Cualquiera de los enfoques debería funcionar.


Podría hacer LIKE @SEARCH y en su código C #, hacer

searchString = "%" + searchString + "%"