bonsoir messieurs j'ai un problème pour récupérer des infos sur une table pour l’insérer dans une autre.
j'ai trois tables qui sont en relation
1. produit (ID_article, design, prix_U, Qte)
2. commande (num_com, date_com, montant_com)
3. detail_commande (num_det, num_com, ID_article, qute_det)
et une autre table qui n'est pas en relation
4. facture (ref_article, qute_det, design, prixU, PrixT)
je n'arrive pas à remplir la table detail_commande. Il faut dire que je suis perdu. Pouvez-vous me mettre sur la voie s'il vous plait?
j'ai peut-être fait de graves erreurs dans mes codes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| private void BtnValider_Click(object sender, EventArgs e)
{
DialogResult dialogResult = MessageBox.Show("Voulez vous valider la facture?", "VALIDATION DE LA FACTURE", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
try
{
setConnection();
sql_con.Open();
using (OleDbCommand cmd1 = sql_con.CreateCommand())
{
cmd1.CommandText = "INSERT INTO Commandes (montant_com) VALUES (@montant_com)";
cmd1.Parameters.AddWithValue("@montant_com", TxtTotalCmd.Text);
//sql_cmd = new OleDbCommand(CommandText, sql_con);
cmd1.ExecuteNonQuery();
//ADODB.Recordset dbrst = new ADODB.Recordset();
}
long Qte_prod, numCmd;
string ref_prod;
using (OleDbCommand cmd2 = sql_con.CreateCommand())
{
//setConnection();
cmd2.CommandText = "SELECT MAX(num_com) AS dernier_num FROM Commandes";
// cmd2.Connection.Open();
// sql_con.Open();
object result = cmd2.ExecuteScalar();
if (result is null || Convert.IsDBNull(result))
{
numCmd = 0;
}
else
{
numCmd = Convert.ToInt64(result);
TxtNunCmd.Text = numCmd.ToString();
//LoadDB();
//object result1 = cmd3.ExecuteScalar();
for (int i = 0; i < dataGridView1.Rows.Count; i++) //Car tu fais une infériorité stricte
{
ref_prod = Convert.ToString(dataGridView1.Rows[i].Cells[0].Value);
Qte_prod = Convert.ToInt64(dataGridView1.Rows[i].Cells[1].Value);
using (OleDbCommand cmd3 = sql_con.CreateCommand())
{
cmd3.CommandText = "INSERT INTO * Detail_commandes (com_det, ref_det, qute_det) VALUES (@com_det,@ref_det,@qute_det)";
cmd3.Parameters.AddWithValue("@com_det", TxtNunCmd.Text);
cmd3.Parameters.AddWithValue("@ref_det", ref_prod);
cmd3.Parameters.AddWithValue("@qute_det", Qte_prod);
cmd3.ExecuteNonQuery();
}
using (OleDbCommand cmd4 = sql_con.CreateCommand())
{
setConnection();
cmd4.CommandText = "UPDATE Catalogue SET Quantite = Quantite - (@Qte_cmd) WHERE code_article = (@code_article)";
cmd4.Parameters.AddWithValue("@Qte_cmd", Qte_prod);
cmd4.Parameters.AddWithValue("@code_article", TxtRefProduit.Text);
cmd4.ExecuteNonQuery();
}
}
sql_con.Close();
SupDetail_Temp();
//vider();
TxtTotalCmd.Text = "";
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
sql_con.Close();
}
}
else if (dialogResult == DialogResult.No)
{
//do something else
}
} |
Partager