sql >> Base de Datos >  >> RDS >> Mysql

mysql c# cuadro de texto de búsqueda

Aparte de la posible inyección de SQL mediante la concatenación de cadenas, el uso de parámetros como los que tiene está muy cerca.

Su cadena de consulta tiene (barras ='@barcodes'), elimine las 'comillas' simples y su parámetro debe ser los "códigos de barras", no las barras. En cuanto a su producto con los comodines "%", cree una cadena que obligue a todo el parámetro a tenerlos incluidos de forma predeterminada... como

string selectQuery = 
@"select 
      descricao,
      codigo 
   from 
      produtos 
   where 
          barras = @barcodes 
      or descricao like @product";

MySqlCommand command = new MySqlCommand(selectQuery, connection);
// the "@" is not required for the parameter NAMEs below, jut the string
// name of the parameter as in the query.

// Ok to use the actual text from your textbox entry here
command.Parameters.AddWithValue("barcodes", Txtcodigo.Text);

// but use the STRING created with '%' before/after created above
string parmProduct = '%' + Txtcodigo.Text.Trim() + '%';
command.Parameters.AddWithValue("product", parmProduct);

// NOW you can execute the reader and pull your data
connection.Open();
MySqlDataReader reader = command.ExecuteReader();
DataTable dt2 = new DataTable();
dt2.Load(reader);
DataView dvDataTable = new DataView(dt2);
Txtproduto.Text = reader.GetString("descricao");