c# MysqlAdapter: query select like wildcard %

Premessa:

  1. Installare il driver connector MySQL Connector .NET 5.1.4 ta
  2. si vuole estrarre da un database mysql un determinato
    numero di righe, sulla base di una stringa di testo passata da un campo TextBox.

Ipotizziamo di dover eseguire una clausola SQL del tipo:

1
2
SELECT oid, nome, cognome 
FROM tabella1 WHERE nome LIKE '%pippo%'

Creiamo il MysqlDataAdapter e la query parametrizzata da eseguire:

1
2
SELECT oid, nome, cognome 
FROM tabella1 WHERE nome LIKE ?nome

Grazie a Visual Studio 2005 è abbastanza banale impostare tutte le proprietà del parametro ?nome, per cui, ci basterà semplicemente richiamare il metodo FillBy nel seguente modo:

1
2
this.myTableAdapter.FillBy(this.myDataSet.tabella1
, '%'+ this.tbox_nomecognome.Text+ '%');

La particolarità sta nel fatto che se andassimo ad inserire le wildcard % direttamente nella clausola sql creata tramite Visual Studio, essa non tornerebbe alcun valore perchè il motore ado.net non riesce a sostituire correttamente il valore del parametro. Per questo motivo, si devono passare le wildcard % come fossero semplici caratteri.

Viva la Microsoft – dove tutto è bello fin quando si sta nel loro seminato, appena se ne esce si perdono 5 ore di lavoro.

Related Posts:

  • Nessun post correlato