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:
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 duCode:
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:rdr2 = selec.ExecuteReader();
Merci d'avance,
Mathieu