salut tt le monde ,

j ai essai de récupéré une valeur de la table du base de donnée et la mettre dans un autre table et j ai eu cette Erreur Un DataReader associé à cette Command est déjà ouvert. Il doit d'abord être fermé.
voile le code
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
{
            int idfichier = 0;
            int rows = e.RowIndex;
            string urlfichier;
 
            urlfichier = this.dataGridViewdossier[1, rows].Value.ToString();
 
 
            tempsProcessus pp = new tempsProcessus();
            pp.PrintDoc(urlfichier);
            SqlCommand verif = new SqlCommand("SELECT id FROM dossier where nom ='" + urlfichier + "' ", con);
 
                SqlDataReader r = verif.ExecuteReader();
                while (r.Read())
                {
                    idfichier = (int)r["id"];
                }
 
            MessageBox.Show(idfichier.ToString());
            DateTime x = pp.getProcessStartTime();
            DateTime y = pp.getProcessEndTime();
            TimeSpan xy = x - y;
            SqlCommand sqlComm = new SqlCommand();
            sqlComm = con.CreateCommand();
 
            sqlComm.CommandText = @"INSERT INTO compture (dateouverture,datefermeture,tempstravail,id_personne,id_ficher) VALUES (@x,@y,@xy,@idpersonne,@idfichier)";
 
            sqlComm.Parameters.Add("@x", SqlDbType.DateTime);
            sqlComm.Parameters.Add("@y", SqlDbType.DateTime);
            sqlComm.Parameters.Add("@xy", SqlDbType.DateTime);
            sqlComm.Parameters.Add("@idpersonne", SqlDbType.Int);
            sqlComm.Parameters.Add("@idfichier", SqlDbType.Int);
 
            sqlComm.Parameters["@x"].Value = x;
            sqlComm.Parameters["@y"].Value = y;
            sqlComm.Parameters["@xy"].Value = xy;
            sqlComm.Parameters["@idpersonne"].Value = idpersonne;
            sqlComm.Parameters["@idfichier"].Value = idfichier;
 
 
            sqlComm.ExecuteNonQuery();
 
 
        }
merci d avance