Balistik94
Nouveau membre
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.
[cpp]//déclaration de la chaîne de connexion et de la chaîne qui va contenir la requête
string connstr3, sqlstr3;
connstr3 = "Provider=Microsoft.Jet.OLEDB.4.0; ";
connstr3 = connstr3 + @"Data Source=trains.mdb";
//ouverture de la connexion, mise en place du DataSet qui va contenir le resultat de la reqête
sqlstr3="Select * from reservation";
OleDbConnection Oconn3=new OleDbConnection(connstr3);
Oconn3.Open();
OleDbDataAdapter Oda2=new OleDbDataAdapter(sqlstr3,Oconn3);
DataSet ds2=new DataSet();
Oda2.Fill(ds2,"reservation");
DataRow dr2=ds2.Tables["reservation"].NewRow();
//modifications des enregistrements dans le DataSet
dr2["num_passager"]=num_pass;
dr2["date"]=comboBox5.SelectedIndex+"/"+comboBox4.SelectedIndex+"/"+textBox2.Text;
dr2["heure"]=comboBox7.SelectedIndex+label1.Text+comboBox1.SelectedIndex;
dr2["nom_ville"]=comboBox8.SelectedIndex;
ds2.Tables["reservation"].Rows.Add(dr2);
Oda2.InsertCommand=new OleDbCommand("Insert into reservation values (?,?,?,?)",Oconn3);
Oda2.InsertCommand.Parameters.Add("num_passager",OleDbType.Numeric);
Oda2.InsertCommand.Parameters.Add("date",OleDbType.VarChar);
Oda2.InsertCommand.Parameters.Add("heure",OleDbType.VarChar);
Oda2.InsertCommand.Parameters.Add("nom_ville",OleDbType.VarChar);
Oda2.InsertCommand.Parameters["num_passager"].Value=num_pass;
Oda2.InsertCommand.Parameters["date"].Value=comboBox5.SelectedIndex+"/"+comboBox4.SelectedIndex+"/"+textBox2.Text;
Oda2.InsertCommand.Parameters["heure"].Value=comboBox7.SelectedIndex+label1.Text+comboBox1.SelectedIndex;
Oda2.InsertCommand.Parameters["nom_ville"].Value=comboBox8.SelectedIndex;
//mise à jour de la table grâce au DataSet
int res2=Oda2.Update(ds2,"reservation");
[/cpp]
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.
[cpp]//déclaration de la chaîne de connexion et de la chaîne qui va contenir la requête
string connstr3, sqlstr3;
connstr3 = "Provider=Microsoft.Jet.OLEDB.4.0; ";
connstr3 = connstr3 + @"Data Source=trains.mdb";
//ouverture de la connexion, mise en place du DataSet qui va contenir le resultat de la reqête
sqlstr3="Select * from reservation";
OleDbConnection Oconn3=new OleDbConnection(connstr3);
Oconn3.Open();
OleDbDataAdapter Oda2=new OleDbDataAdapter(sqlstr3,Oconn3);
DataSet ds2=new DataSet();
Oda2.Fill(ds2,"reservation");
DataRow dr2=ds2.Tables["reservation"].NewRow();
//modifications des enregistrements dans le DataSet
dr2["num_passager"]=num_pass;
dr2["date"]=comboBox5.SelectedIndex+"/"+comboBox4.SelectedIndex+"/"+textBox2.Text;
dr2["heure"]=comboBox7.SelectedIndex+label1.Text+comboBox1.SelectedIndex;
dr2["nom_ville"]=comboBox8.SelectedIndex;
ds2.Tables["reservation"].Rows.Add(dr2);
Oda2.InsertCommand=new OleDbCommand("Insert into reservation values (?,?,?,?)",Oconn3);
Oda2.InsertCommand.Parameters.Add("num_passager",OleDbType.Numeric);
Oda2.InsertCommand.Parameters.Add("date",OleDbType.VarChar);
Oda2.InsertCommand.Parameters.Add("heure",OleDbType.VarChar);
Oda2.InsertCommand.Parameters.Add("nom_ville",OleDbType.VarChar);
Oda2.InsertCommand.Parameters["num_passager"].Value=num_pass;
Oda2.InsertCommand.Parameters["date"].Value=comboBox5.SelectedIndex+"/"+comboBox4.SelectedIndex+"/"+textBox2.Text;
Oda2.InsertCommand.Parameters["heure"].Value=comboBox7.SelectedIndex+label1.Text+comboBox1.SelectedIndex;
Oda2.InsertCommand.Parameters["nom_ville"].Value=comboBox8.SelectedIndex;
//mise à jour de la table grâce au DataSet
int res2=Oda2.Update(ds2,"reservation");
[/cpp]