Requete sql avec parametre

Signaler
Messages postés
9
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2004
-
Messages postés
9
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2004
-
Voila mon problème : impossible de faire marcher une requete sql avec des parametres !!
j'ai une requete du genre :

String cmdStr = "Select Nom from MaTable Where date >?"

mon code :
cmd = new System.Data.OleDb.OleDbCommand();
cmd.Connection = mycon;
cmd.CommandText= cmdStr;
cmd.CommandType = CommandType.Text;

cmd.Parameters.Add("@datdermaj", OleDbType.Date);
cmd.Parameters["@datdermaj"].Value = System.DateTime.Now;

adap = new System.Data.OleDb.OleDbDataAdapter(cmd);
adap.Fill(dataset1);

j'obtiens toujours le meme message : "le reference d'objet n'est pas definie a une instance d'objet" !!!! (de quel objet ??? je sais pas !!)

j'ai vu qu'on peut ajouter les parametres soit au OleDbCommand, soit au OleDbDataAdapter, j'ai essayé les 2 et j'ai toujours le meme message !!
Si j'execute sans mettre le Where dans la requete, ca marche bien, donc je pense que ca ne peut venir que des parametres,

je suis pas un pro du c# alors si qqn peut m'aider, ce serait sympa,
merci

ced0013

4 réponses

Messages postés
199
Date d'inscription
lundi 22 juillet 2002
Statut
Membre
Dernière intervention
14 juin 2006

slt,

essai ça

using System.Data.SqlClient;

string StringConnect = "Server=(local);database=formation;uid=sa;pwd=sa";

SqlConnection MyConnect = new SqlConnection( StringConnect );

SqlDataAdapter Myda = new SqlDataAdapter ( "test", MyConnect );

Myda.SelectCommand.CommandType = CommandType.StoredProcedure;

Myda.SelectCommand.Parameters.Add ( new SqlParameter ("@Name", SqlDbType.VarChar, 50));
Myda.SelectCommand.Parameters["@Name"].Value = "tutu";

il fonction via sqlclient mais tu peux le faire fonctionner avec oldedb ....

8-) :-p

Trinita,
Messages postés
9
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2004

salut, j'ai essayé en faisant adap.SelectCommand.Parameters.Add(new OleDbParameter("@datdermaj",OleDbType.DBTimeStamp)), mais j'ai toujours le meme message "le reference d'objet n'est pas definie a une instance d'objet",

mais je crois que c'est du au fait que c'est un champs Date, car si je fais la meme chose sur un champs String, ca marche bien !!
tu as déja utilisé un parametre pour un champs date ?
merci a toi,

ced0013
Messages postés
9
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2004

en fait, je crois pas que ca vient des dates, car j'ai une autre requete (Insert) avec des parametres (string), et j'ai encore ce message !!! donc je dois faire une grosse connerie, mais je vois pas ou !!!

string Strcmd = "INSERT INTO elem(libelle,ref) VALUES(?,?)";
cmd = new OleDbCommand(Strcmd,ConnecWS);
adap = new OleDbDataAdapter(cmd);
adap.InsertCommand.Parameters.Add(new OleDbParameter("@libelle",OleDbType.VarChar));
adap.InsertCommand.Parameters["@libelle"].Value =lig[0];

adap.InsertCommand.Parameters.Add(new OleDbParameter("@ref",OleDbType.VarChar));
adap.InsertCommand.Parameters["@ref"].Value = lig[1];

// pour executer, je suis pas sur de mon coup!!
adap.InsertCommand.ExecuteScalar()

Si y'a des pros du sql en c# , please HELP ME, je vais peter les plombs avec ca !!

ced0013
Messages postés
9
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2004

en fait c'est un bug du driver ole db pour visual foxpro,
je pouvais chercher longtemps un probleme dans mon code !!
merci bill !! ou plutot kill bill

ced0013