// Lors de la création de ta form : cbPays.SelectedIndexChanged += new EventHandler(cbPays_SelectedIndexChanged); // Connexion à la base, etc while(myReader.Read()) { cbPays.Items.Add(myReader["Pays"]); } // Puis la fonction appelée lors du déclenchement de l'événement : void cbPays_SelectedIndexChanged(object sender, EventArgs e) { // Connexion à la base, etc string pays = (string)cbPays.SelectedItem; string requete2 = "SELECT Departement FROM Europe WHERE Pays='"+pays+"';"; OleDbCommand command2 = new OleDbCommand(requete2, Calculette); OleDbDataReader myReader2; myReader2 = command2.ExecuteReader(); while(myReader2.Read()) { cbCP.Items.Add(myReader2["Departement"]); } Calculette.Close(); }
// Au lieu de string requete2 = "SELECT Departement FROM Europe WHERE Pays='"+pays+"';"; OleDbCommand command2 = new OleDbCommand(requete2, Calculette); // Il vaut mieux faire string requete2 = "SELECT Departement FROM Europe WHERE Pays=@Pays;"; OleDbCommand command2 = new OleDbCommand(requete2, Calculette); command2.Parameters.Add(new OleDbParameter("@Pays", pays));
string pays = (string)cbPays.SelectedItem;
string pays = cbPays.SelectedItem.ToString;
cbCP.Items.Clear();au début de cet évènement car dès qu'on changeait de pays il accumulé les codes postaux!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionkrimog a raison !
void radioMPL_CheckedChanged(object sender, EventArgs e) { while(radioMPL.Checked==false) { cbMPL.Enabled==false; } }
void ButtonCalcClick(object sender, EventArgs e) { if(cbMPL.Enabled==false || cbPAL100120.Enabled==false || cbPAL80120.Enabled==false) { OleDbConnection Calculette = new OleDbConnection(connect); Calculette.Open(); string pays = (string)cbPays.SelectedItem; string dep = (string)cbCP.SelectedItem; double num =0; if(cbMPL.Enabled==true) { num =(double)cbMPL.SelectedItem; } else if(cbPAL80120.Enabled==true) { num = (double)cbPAL80120.SelectedItem; } else { num = (double)cbPAL100120.SelectedItem; } string requete2 = "SELECT @num FROM Europe WHERE Pays=@Pays AND Departement=@Departement;"; OleDbCommand command2 = new OleDbCommand(requete2, Calculette); command2.Parameters.Add(new OleDbParameter("@Pays", pays)); command2.Parameters.Add(new OleDbParameter("@Departement", dep)); command2.Parameters.Add(new OleDbParameter("@num", num)); OleDbDataReader myReader2; myReader2 = command2.ExecuteReader(); MessageBox.Show((string)myReader2["@num"]); Calculette.Close(); } else { MessageBox.Show("Veuillez remplir les champs."); } }
SELECT Nom, Population FROM Pays WHERE Id = 3;
SELECT Pays.Nom, Pays.Id FROM Pays INNER JOIN Departement ON Pays.Id = Departement.IdPays INNER JOIN Ville ON Departement.Id = Ville.IdDepartement WHERE Ville.Id = 70;
SELECT num FROM Europe WHERE Pays=@Pays AND Departement=@Departement;
if(cbMPL.Enabled==true) { num =(double)cbMPL.SelectedItem; } else if(cbPAL80120.Enabled==true) { num = (double)cbPAL80120.SelectedItem; } else { num = (double)cbPAL100120.SelectedItem; } string requete3 = "SELECT "+num+" FROM Europe WHERE Pays=@Pays AND Departement=@Departement;"; OleDbCommand command3 = new OleDbCommand(requete3, Calculette); command3.Parameters.Add(new OleDbParameter("@Pays", pays)); command3.Parameters.Add(new OleDbParameter("@Departement", dep)); OleDbDataReader myReader3; myReader3 = command3.ExecuteReader(); double tarifs=(double)myReader3[(int)num]; Calculette.Close(); MessageBox.Show(tarifs+"");
myReader3[(int)num];
myReader3[num.ToString()];
// Remplace num // Par "Colonne" + num.ToString().Replace(",", "_").Replace(".", "_"); // Je replace également les virgules car je crois que ToString() // doit utiliser une virgule à la place d'un point.
double tarifs=(double)myReader3["Colonne" + num.ToString().Replace(",", "_").Replace(".", "_")];