स्ट्रिंग्स को जोड़कर संभावित एसक्यूएल-इंजेक्शन के अलावा, आपके पास पैरामीटर का उपयोग करना बहुत करीब है।
आपकी क्वेरी स्ट्रिंग में (barras ='@barcodes') है, सिंगल 'कोट्स' को स्ट्रिप करें और आपका पैरामीटर "बारकोड्स" होना चाहिए, बैरस नहीं। जहां तक "%" वाइल्ड-कार्ड वाले आपके उत्पाद का सवाल है, तो एक स्ट्रिंग बनाएं जो पूरे पैरामीटर को डिफ़ॉल्ट रूप से शामिल करने के लिए बाध्य करे... जैसे
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");