J'ai créé une base de données et j'ai créé un logiciel avec c# afin de m'y connecté et d'interagir avec.
J'ai créé une listview avec les éléments de ma base de données à l'intérieur, j'ai créé un bouton permettant d'ouvrir une nouvelle form afin de modifier un élément sélectionnée dans la listview.
par exemple la requête sql va prendre en compte l'élément selectionné mais aussi les élément d'une textebox mais celle-ci se trouve sur la deuxième form.
Le problème c'est que lorsque j'exécute le programme j'ai une erreur qui me parle d'index et je ne sais pas c'est quoi. Voici l'erreur :
'InvalidArgument=La valeur '10' n'est pas valide pour 'index'.
private void bt_ajouter_Click(object sender, EventArgs e) { using (concession concession =new concession()) connexion = new MySqlConnection("DATABASE=Concession; SERVER=localhost; user id=root; pwd=root"); connexion.Open(); MySqlCommand commande = new MySqlCommand("INSERT INTO Client_Stock_Vente (Id_Client, Id_Stock, Date_Vente) VALUES ((SELECT Id_Client FROM Client WHERE Nom = @Nom AND Prenom = @Prenom AND Adresse = @Adresse AND numero = @Numero), (SELECT Id_Stock FROM Stock WHERE Kilometrage = @Kilometrage AND Prix_Achat = @Prix_Achat AND Prix_Vente = @Prix_Vente AND Date_CT = @Date_CT AND Option_Vehicule = @Option AND Puissance_Fiscale = @Puissance_Fiscale), @Date_Vente)", connexion);
Bien évidemment je me doute, mais je ne sais pas quoi faire, je ne suis qu'un simple étudiant en BTS, j'apprend au fur et à mesure, c'est la première fois que je fais ça.
J'aimerai bien une aide de votre part.
regarde la ligne avec un commentaire en vert
la première ligne de la base de données qui est sélectionnée a l'index 0
Si il y en avait plusieurs la seconde ligne aurait l'index 1 , la troisième l'index 2, etc …..
public partial class Ajouter_Vente : Form
{
private concession _concession; public Ajouter_Vente(concession concession)
{
InitializeComponent();
_concession = concession;
}
MySqlConnection connexion;
private void bt_ajouter_Click(object sender, EventArgs e)
{
using (concession concession =new concession())
connexion = new MySqlConnection("DATABASE=Concession; SERVER=localhost; user id=root; pwd=root");
connexion.Open();
MySqlCommand commande = new MySqlCommand("INSERT INTO Client_Stock_Vente (Id_Client, Id_Stock, Date_Vente) VALUES ((SELECT Id_Client FROM Client WHERE Nom = @Nom AND Prenom = @Prenom AND Adresse = @Adresse AND numero = @Numero), (SELECT Id_Stock FROM Stock WHERE Kilometrage = @Kilometrage AND Prix_Achat = @Prix_Achat AND Prix_Vente = @Prix_Vente AND Date_CT = @Date_CT AND Option_Vehicule = @Option AND Puissance_Fiscale = @Puissance_Fiscale), @Date_Vente)", connexion);
ListViewItem element = _concession.lv_vehicule.SelectedItems[0]; // ici le changement
string Marque = element.SubItems[0].Text;
string Modele = element.SubItems[1].Text;
string Annee = element.SubItems[2].Text;
string Porte = element.SubItems[3].Text;
string Transmission = element.SubItems[4].Text;
string Couleur = element.SubItems[5].Text;
string Energie = element.SubItems[6].Text;
string Kilometrage = element.SubItems[7].Text;
string Date_CT = element.SubItems[8].Text;
string Option_Vehicule = element.SubItems[9].Text;
string Puissance_Fiscale = element.SubItems[10].Text;
commande.Parameters.AddWithValue("@Marque", Marque);
commande.Parameters.AddWithValue("@Modele", Modele);
commande.Parameters.AddWithValue("@Annee", Annee);
commande.Parameters.AddWithValue("@Porte", Porte);
commande.Parameters.AddWithValue("@Transmission", Transmission);
commande.Parameters.AddWithValue("@Couleur", Couleur);
commande.Parameters.AddWithValue("@Energie", Energie);
commande.Parameters.AddWithValue("@Kilometrage", Kilometrage);
commande.Parameters.AddWithValue("@Date_CT", Date_CT);
commande.Parameters.AddWithValue("@Option_Vehicule", Option_Vehicule);
commande.Parameters.AddWithValue("@Puissance_Fiscale", Puissance_Fiscale);
commande.Parameters.AddWithValue("@Nom", tb_nom.Text);
commande.Parameters.AddWithValue("@Prenom", tb_prenom.Text);
commande.Parameters.AddWithValue("@Adresse", tb_adresse.Text);
commande.Parameters.AddWithValue("@Numero", tb_numero.Text);
commande.Parameters.AddWithValue("@Date_Vente", Convert.ToDateTime(tb_date_vente.Text).ToString("yyyy-MM-dd"));
commande.ExecuteNonQuery();
commande.Parameters.Clear();
}
}
Donc que dois-je faire ?
J'aimerai bien une aide de votre part.
la première ligne de la base de données qui est sélectionnée a l'index 0
Si il y en avait plusieurs la seconde ligne aurait l'index 1 , la troisième l'index 2, etc …..