salam

apparemment je vais pas en finir avec les tables est les bases de données ... le problème la est un peut bizarre puisque elle marche sur une procédure et non sur une autre .
voila la procédure pour utilisé la table:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
private void tableproduction_planifier(object sender, EventArgs e)
        {
            if (datasetproduction.Tables["production_planifier"] == null)
            {
                production_planifier.SelectCommand = new OleDbCommand();
                production_planifier.SelectCommand.Connection = Connectionproduction;
                production_planifier.SelectCommand.CommandText = "SELECT * FROM production_planifier";
                production_planifier.SelectCommand.CommandType = CommandType.Text;
                production_planifier.InsertCommand = new OleDbCommand();
                production_planifier.InsertCommand.Connection = Connectionproduction;
                production_planifier.InsertCommand.CommandText = "INSERT INTO production_planifier (cleproduction,qte_objective,achevement_etape,date_debut) VALUES (:cleproduction,:qte_objective,:achevement_etape,:date_debut)";
                production_planifier.InsertCommand.CommandType = CommandType.Text;
                production_planifier.InsertCommand.Parameters.Add(":cleproduction", OleDbType.Integer, 4);
                production_planifier.InsertCommand.Parameters.Add(":qte_objective", OleDbType.Integer, 7);
                production_planifier.InsertCommand.Parameters.Add(":achevement_etape", OleDbType.Integer, 1);
                production_planifier.InsertCommand.Parameters.Add(":date_debut", OleDbType.DBDate,8);
                builderproduction_planifier = new OleDbCommandBuilder(production_planifier);
                production_planifier.UpdateCommand = new OleDbCommand("UPDATE production_planifier SET production_planifier.qte_encours = :qte_encours,production_planifier.qte_op=:qte_op,production_planifier.nonconforme=:nonconforme,production_planifier.rebut=:rebut WHERE (((production_planifier.cleproduction)=:cleproduction));", Connectionproduction);
                production_planifier.UpdateCommand.Parameters.Add(":qte_encours", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":cleproduction", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":qte_op", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":nonconforme", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":rebut", OleDbType.Integer, 7);
                Connectionproduction.Open();
                production_planifier.Fill(datasetproduction, "production_planifier");
                Connectionproduction.Close();
                bindingproduction_planifier.DataSource = datasetproduction;
                bindingproduction_planifier.DataMember = "production_planifier";
            }
            else
            {
                datasetproduction.Tables["production_planifier"].Clear();
                production_planifier.SelectCommand = new OleDbCommand();
                production_planifier.SelectCommand.Connection = Connectionproduction;
                production_planifier.SelectCommand.CommandText = "SELECT * FROM production_planifier";
                production_planifier.SelectCommand.CommandType = CommandType.Text;
                production_planifier.InsertCommand = new OleDbCommand();
                production_planifier.InsertCommand.Connection = Connectionproduction;
                production_planifier.InsertCommand.CommandText = "INSERT INTO production_planifier (cleproduction,qte_objective,achevement_etape,date_debut) VALUES (:cleproduction,:qte_objective,:achevement_etape,:date_debut)";
                production_planifier.InsertCommand.CommandType = CommandType.Text;
                production_planifier.InsertCommand.Parameters.Add(":cleproduction", OleDbType.Integer, 4);
                production_planifier.InsertCommand.Parameters.Add(":qte_objective", OleDbType.Integer, 7);
                production_planifier.InsertCommand.Parameters.Add(":achevement_etape", OleDbType.Integer, 1);
                production_planifier.InsertCommand.Parameters.Add(":date_debut", OleDbType.DBDate);
                builderproduction_planifier = new OleDbCommandBuilder(production_planifier);
                production_planifier.UpdateCommand = new OleDbCommand("UPDATE production_planifier SET production_planifier.qte_encours = :qte_encours,production_planifier.qte_op=:qte_op,production_planifier.nonconforme=:nonconforme,production_planifier.rebut=:rebut WHERE (((production_planifier.cleproduction)=:cleproduction));", Connectionproduction);
                production_planifier.UpdateCommand.Parameters.Add(":qte_encours", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":cleproduction", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":qte_op", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":nonconforme", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":rebut", OleDbType.Integer, 7);
                Connectionproduction.Open();
                production_planifier.Fill(datasetproduction, "production_planifier");
                Connectionproduction.Close();
                bindingproduction_planifier.DataSource = datasetproduction;
                bindingproduction_planifier.DataMember = "production_planifier";
            }
        }
je l'utilise une première fois sur un bouton et j'ai pas u de problème la mise a jour ce fais le plus normalement du monde .
tableproduction_planifier(sender,e);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
//-------------faire la mise a jour du qte-op------------------//
                                int itemFound1 = bindingproduction_planifier.Find("cleproduction", datasetproduction.Tables["op_momunclature_productionp"].Rows[0].Field<int>("cleproduction"));
                                bindingproduction_planifier.Position = itemFound1;
                                production_planifier.UpdateCommand = new OleDbCommand("UPDATE production_planifier SET production_planifier.qte_op = :qte_op WHERE (((production_planifier.cleproduction)=:cleproduction));", Connectionproduction);
                                production_planifier.UpdateCommand.Parameters.Add(":qte_op", OleDbType.Integer, 7);
                                production_planifier.UpdateCommand.Parameters.Add(":cleproduction", OleDbType.Integer, 7);
                                production_planifier.UpdateCommand.Parameters[":qte_op"].Value = Convert.ToInt32(datasetproduction.Tables["production_planifier"].Rows[itemFound1]["qte_op"]) + deferenceqte_encours;
                                production_planifier.UpdateCommand.Parameters[":cleproduction"].Value = datasetproduction.Tables["production_planifier"].Rows[itemFound1]["cleproduction"];
                                production_planifier.UpdateCommand.Connection.Open();
                                production_planifier.UpdateCommand.ExecuteNonQuery();
                                production_planifier.UpdateCommand.Connection.Close();
                                production_planifier.Update(datasetproduction.Tables["production_planifier"]);

quant je veut faire une mise a jour plus-tard ... ça marche pas .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//--------------------faire la mise a jour du NC------------------------//
                int itemFound1 = bindingproduction_planifier.Find("cleproduction", datasetproduction.Tables["op_momunclature_productionp"].Rows[0].Field<int>("cleproduction"));
                bindingproduction_planifier.Position = itemFound1;
                int qte_op = Convert.ToInt32(datasetproduction.Tables["production_planifier"].Rows[itemFound1]["qte_op"])+1;
                int nonconforme = Convert.ToInt32(datasetproduction.Tables["production_planifier"].Rows[itemFound1]["nonconforme"])+1;;
                production_planifier.UpdateCommand = new OleDbCommand("UPDATE production_planifier SET production_planifier.qte_op = :qte_op,production_planifier.nonconforme =:nonconforme WHERE (((production_planifier.cleproduction)=:cleproduction));", Connectionproduction);
                production_planifier.UpdateCommand.Parameters.Add(":qte_op", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":cleproduction", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters.Add(":nonconforme", OleDbType.Integer, 7);
                production_planifier.UpdateCommand.Parameters[":qte_op"].Value = qte_op;
                production_planifier.UpdateCommand.Parameters[":cleproduction"].Value = datasetproduction.Tables["production_planifier"].Rows[itemFound1]["cleproduction"];
                production_planifier.UpdateCommand.Parameters[":nonconforme"].Value = nonconforme;
                production_planifier.UpdateCommand.Connection.Open();
                production_planifier.UpdateCommand.ExecuteNonQuery();
                production_planifier.UpdateCommand.Connection.Close();
                production_planifier.Update(datasetproduction.Tables["production_planifier"]);
voila je ne sais pas pourquoi ça marche une fois et non pour la deuxième malgré que je fais exactement la même chose. ,je ne sais pas d’après le code que je vous montre peut être que vous remarquerai que je complique les choses, s'il ya un moyen plus simple pour interagir avec les tables, je vous remercie d'avance sachant que ça me rend fou un problème comme celui la qui m’empêche d'avancer depuis un bon moment maintenant.