Hello tout le monde
J'ai un petit soucis avec les connexions préparées.
En effet, je fais un petit travail en C#avec une base de données Firebird.
Cette connexion se fait via la méthode ODBC.
Pour me connecter, j'y arrive sans trop de problèmes.
Cette base de données possède les champs suivants:
Id, Titre, Auteur, Genre, Achat, Prix, Disponible.
Quand je veux effectuer une requête préparée pour connaitre que les livres dont le genre est roman,
J'effectue ceci actuellement:
Et cela fonctionne nickel... hormis que je n'ai pas encore mis de moyen de contrôle de sécurité...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ConnectionString = @"Dsn=ContactSer;Driver={Firebird/InterBase(r) driver};dbname=chemin de ma BDD;charset=NONE;uid=SYSDBA"; cn = new OdbcConnection(ConnectionString); cmd = new OdbcCommand(); cmd.Connection = cn; cn.Open(); string data = "BD"; cmd.CommandText = "SELECT GENRE FROM BIBLIO WHERE GENRE LIKE '%"+data+"%'"; cmd.ExecuteNonQuery(); OdbcDataReader reader = cmd.ExecuteReader();
Hors j'ai vu qu'avec une requête préparée, on peut écrire ceci:
Et là, ça ne va plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ConnectionString = @"Dsn=ContactSer;Driver={Firebird/InterBase(r) driver};dbname=Chemin de ma BDD;charset=NONE;uid=SYSDBA"; cn = new OdbcConnection(ConnectionString); cmd = new OdbcCommand(); cmd.Connection = cn; cn.Open(); cmd.Parameters.Add(new OdbcParameter("@auteur", OdbcType.VarChar, 15)); cmd.Parameters["@auteur"].Value = "BD"; cmd.CommandText = "SELECT GENRE FROM BIBLIO WHERE GENRE LIKE '%@auteur%'"; //cmd.CommandText = "SELECT GENRE FROM BIBLIO WHERE GENRE LIKE %@auteur%"; //MessageBox.Show(cmd.CommandText);
On peut me dire ou se trouve mon erreur ?
MErci pour votre aide :-)
Partager