C# : requete sql avec parametres !!

C# : requete sql avec parametres !! - C#/.NET managed - Programmation

Marsh Posté le 24-06-2004 à 15:22:48    

Si y'a des pros du sql en c# , please HELP ME, je vais peter les plombs avec ca !!
 
j'essaye de faire des requete sql (select et insert) avec des parametres, et j'ai toujours le meme message : "le reference d'objet n'est pas definie a une instance d'objet" !!!! (de quel objet ??? je sais pas !!), donc je dois faire une grosse connerie, mais je vois pas ou ! comme je suis pas un pro en c# (ni en sql d'ailleurs!) j'ai vraiment besoin d'aide,  
voila mon code :
 
string cmdStr = "SELECT libelle, dat FROM mTable WHERE dat < ?";
     
cmd = new System.Data.OleDb.OleDbCommand(cmdStr,connec);
cmd.CommandType = CommandType.Text;
adap = new System.Data.OleDb.OleDbDataAdapter();
adap.SelectCommand = cmd;
adap.SelectCommand.Parameters.Add(new OleDbParameter("@dat",OleDbType.DBTimeStamp));
adap.SelectCommand.Parameters["@dat"].Value =System.DateTime.Now ;
dataSet1 = new DataSet();
adap.Fill(dataSet1);
 
et ma requete Insert dans un autre prog:
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];
adap.InsertCommand.ExecuteScalar();
     
j'ai regardé les exemple microsoft, mais je vois pas du tout le probleme, alors si vous pouvez m'aider, ce serait sympa
 
merci a+
ced0013

Reply

Marsh Posté le 24-06-2004 à 15:22:48   

Reply

Marsh Posté le 24-06-2004 à 16:32:44    

dans tes selects, a tu fais exprès de laisser un point d'interrogation à la place de @dat dans la 1ere et (@libelle, @ref) dans la 2nd?


---------------
"Un voyage de plusieurs milliers de kilometres commence par un simple pas"
Reply

Marsh Posté le 24-06-2004 à 17:09:36    

c bien fait expres, apparement c'est bien cette syntaxe pour des requete en OleDbCommand (d'apres ce que j'ai vu dans l'aide msdn),
chaque ? corrrespond a un parametre, ce qui est pas super quand il y en a plusieurs!!
les parametre @dat ne fonctionne que pour des requete pour sqlCommand si j'ai bien compris !!
merci quand meme
0013

Reply

Marsh Posté le 28-06-2004 à 15:51:19    

tu pourrais construire entierement ta requete avant de creer ton OleDbCommand, comme ca tu n'as plus besoin d'utiliser Paramaters:
 
string cmdStr = "SELECT libelle, dat FROM mTable WHERE dat < " + System.DateTime.Now.ToString();
cmd = new System.Data.OleDb.OleDbCommand(cmdStr,connec);  
cmd.CommandType = CommandType.Text;  
adap = new System.Data.OleDb.OleDbDataAdapter();  
adap.SelectCommand = cmd;  
dataSet1 = new DataSet();  
adap.Fill(dataSet1);  
 
ou 1 truc dans ce genre là.

Reply

Marsh Posté le 28-06-2004 à 17:13:32    

en fait, je crois que c'est plutot un problème de format de date, car avec un string ca marche !!
j'ai essayé de faire la requete entierement, mais j'ai des message du genre "operator/ operand type mismatch" ou "unrecognized keyword", alors que ca marche avec un string !!
donc mon probleme est dans la conversion des format dates  OleDb, et format c#, ca doit pas etre bien comliqué, pourtant je galère !!
merci a+
0013

Reply

Marsh Posté le 29-06-2004 à 15:55:57    

ne chercher plus, il s'agit d'un bug du driver ole db pour visual foxpro, j'ai cherché tout sauf ca!!!  
merci microsoft pour tout ce temps perdu
conclusion : KILL BILL

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed