118 messaggi dal 13 aprile 2007
Il database è access, devo cercare una stringa all'interno di un campo che si chiama contenuto.

string sql = "SELECT * FROM contenuti where contenuto LIKE '" + cerca.Value + "%'";

la query si scrive così?

lo chiedo perchè non mi sta funzionando

ciao
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
La tua query cerca tutti i record in cui il campo contenuto inizia per la stringa contenuta in cerca.value.

Fai il debug e controlla cosa c'è in "value" e verifica sempre che alla query non sia passato un singolo apice.

Ciao
5 messaggi dal 18 gennaio 2007
string sql = "SELECT * FROM contenuti where contenuto LIKE '%" + cerca.Value + "%'";
edepriv wrote:
string sql = "SELECT * FROM contenuti where contenuto LIKE '%" + cerca.Value + "%'";

occhio alla SQL injection. meglio optare per le query parametriche. è come interrogare una stored procedure, alla fine, ma funziona con query inline e con tutti i db.
http://www.aspitalia.com/articoli/asp.net/adodotnet.aspx?page=2
con SQL Server i parametri sono nominali, cioè vanno nella forma @nomepar

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
118 messaggi dal 13 aprile 2007
grazie a tutti, l'ho modificata così:

string sql = "SELECT * FROM contenuti where contenuto LIKE '%" + @id + "%'";
OleDbCommand com = new OleDbCommand(sql, con);
com.Parameters.Add("@id", OleDbType.WChar, 8);
com.Parameters[0].Value = id;
OleDbDataAdapter da = new OleDbDataAdapter();
con.Open();
da.SelectCommand = com;

ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.