Se connecter avec
S'enregistrer | Connectez-vous

problème insertion base de données avec visual studio

Dernière réponse : dans Programmation

Voila je bosse sur une application qui permet d'accéder à une base de données en intégrant des requêtes SQL dans le langage C#. J'arrive à insérer des données dans une table de la base mais une autre pose problème et ça me donne l'erreur suivante : "Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll"
L'erreur pointe sur la toute dernière ligne. Je pense que ça doit venir d'une mauvaise utilisation du DataSet. J'ai windows xp et j'utilise visual studio 2003 avec une base de données access.

  1. //déclaration de la chaîne de connexion et de la chaîne qui va contenir la requête
  2. string connstr3, sqlstr3;
  3. connstr3 = "Provider=Microsoft.Jet.OLEDB.4.0; ";
  4. connstr3 = connstr3 + @"Data Source=trains.mdb";
  5.  
  6. //ouverture de la connexion, mise en place du DataSet qui va contenir le resultat de la reqête
  7. sqlstr3="Select * from reservation";
  8. OleDbConnection Oconn3=new OleDbConnection(connstr3);
  9. Oconn3.Open();
  10. OleDbDataAdapter Oda2=new OleDbDataAdapter(sqlstr3,Oconn3);
  11. DataSet ds2=new DataSet();
  12. Oda2.Fill(ds2,"reservation");
  13. DataRow dr2=ds2.Tables["reservation"].NewRow();
  14.  
  15. //modifications des enregistrements dans le DataSet
  16. dr2["num_passager"]=num_pass;
  17. dr2["date"]=comboBox5.SelectedIndex+"/"+comboBox4.SelectedIndex+"/"+textBox2.Text;
  18. dr2["heure"]=comboBox7.SelectedIndex+label1.Text+comboBox1.SelectedIndex;
  19. dr2["nom_ville"]=comboBox8.SelectedIndex;
  20. ds2.Tables["reservation"].Rows.Add(dr2);
  21. Oda2.InsertCommand=new OleDbCommand("Insert into reservation values (?,?,?,?)",Oconn3);
  22. Oda2.InsertCommand.Parameters.Add("num_passager",OleDbType.Numeric);
  23. Oda2.InsertCommand.Parameters.Add("date",OleDbType.VarChar);
  24. Oda2.InsertCommand.Parameters.Add("heure",OleDbType.VarChar);
  25. Oda2.InsertCommand.Parameters.Add("nom_ville",OleDbType.VarChar);
  26. Oda2.InsertCommand.Parameters["num_passager"].Value=num_pass;
  27. Oda2.InsertCommand.Parameters["date"].Value=comboBox5.SelectedIndex+"/"+comboBox4.SelectedIndex+"/"+textBox2.Text;
  28. Oda2.InsertCommand.Parameters["heure"].Value=comboBox7.SelectedIndex+label1.Text+comboBox1.SelectedIndex;
  29. Oda2.InsertCommand.Parameters["nom_ville"].Value=comboBox8.SelectedIndex;
  30.  
  31. //mise à jour de la table grâce au DataSet
  32. int res2=Oda2.Update(ds2,"reservation");
Lassé par la pub ? Créez un compte

banipalace a dit :
Désolé j'ai modifié le post en fait c'est la toute dernière ligne. Pour les majuscules bah j'voulais juste que mon topic soit bien visible sans vouloir agresser vos yeux voila.

En fait, tu n'en avais pas besoin : son titre est suffisamment explicite pour qu'il soit visible ;) .. Et, comparativement à quelques autres, ce forum utilise une police et une taille de caractères particulièrement lisible..

Sinon, pour ta question, bah je ne suis pas dans le coup [:spamafote]..... ->[]

:jap: 

banipalace a dit :
Pour les majuscules bah j'voulais juste que mon topic soit bien visible sans vouloir agresser vos yeux voila.

bha c'est l'effet inverse qui se passe
et contrairement à d'autres, ton titre est assez clair :jap: 

change le stp
Expert Programmation

Je n'ai pas la réponse, mais il y a quand même des trucs bizarres.
  1. Oda2.InsertCommand.Parameters.Add("nom_ville",OleDbType.VarChar);
  2. Oda2.InsertCommand.Parameters["nom_ville"].Value=comboBox8.SelectedIndex;
L'un est une chaine l'autre un entier.
Lassé par la pub ? Créez un compte