Bonjour,
J'ai la table suivante (unique table de ma base de donnee sql server) :
Je souhaiterais recuperer les FileName des lignes possedant les memes caracteristiques de la colonne Description a la collonne Feature (comprise)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Name Description Type Min Max Feature Storage FileName ----- ----------- ---- --- --- ------- ------- -------- ACM untruc int 0 50 bla imported un.xml ACM untruc int 5 50 bla imported deux.xml ACM untruc int 0 50 bla imported trois.xml ACM untruc2 int 7 50 bla imported quatre.xml ACM untruc2 int 0 35 bla imported cinque.xml
J'ai d'abord essaye avec les datareader en selectionnant d'abord les lignes distinctes aue je souhaite (SqlCommand "val") et ensuite pour chaque ligne de mon reader je recherche tous les FileName possedant cette ligne (SqlCommand "select") et je traite le resultat :
Mais bien sur j'ai une erreur au niveau du
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 SqlCommand val = new SqlCommand("SELECT DISTINCT Description, Type, Min, Max, Feature FROM Variables WHERE Name = @Name", form1.con); val.Parameters.Add(new SqlParameter("@Name", SqlDbType.VarChar, 400)); val.Parameters["@Name"].Value = name; rdr = val.ExecuteReader(); while (rdr.Read()) { descr = rdr[0].ToString(); type = rdr[1].ToString(); min = rdr[2].ToString(); max = rdr[3].ToString(); feat = rdr[4].ToString(); SqlDataReader rdr2 = null; SqlCommand selec = new SqlCommand("SELECT FileName FROM Variables WHERE Description = @desc AND Type = @type AND Min = @min AND Max = @max AND Feature = @feat AND Name = @Name", form1.con); selec.Parameters.Add(new SqlParameter("@desc", SqlDbType.VarChar, 400)); selec.Parameters["@desc"].Value = desc; selec.Parameters.Add(new SqlParameter("@type", SqlDbType.VarChar, 400)); selec.Parameters["@type"].Value = type; selec.Parameters.Add(new SqlParameter("@min", SqlDbType.VarChar, 400)); selec.Parameters["@min"].Value = min; selec.Parameters.Add(new SqlParameter("@max", SqlDbType.VarChar, 400)); selec.Parameters["@max"].Value = max; selec.Parameters.Add(new SqlParameter("@feat", SqlDbType.VarChar, 400)); selec.Parameters["@feat"].Value = feat; rdr2 = selec.ExecuteReader(); while (rdr2.Read()) // erreur { // Je traite mes FileName } rdr2.Close(); } rdr.Close();
J'ai vu plusieurs sujets traitant de cela mais je n'ai pas vraiment compris les solutions ... ou alors elles ne marchent pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part rdr2 = selec.ExecuteReader();
Merci d'avance,
Mathieu
Partager