Bonjour,

J'ai la table suivante (unique table de ma base de donnee sql server) :

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
Je souhaiterais recuperer les FileName des lignes possedant les memes caracteristiques de la colonne Description a la collonne Feature (comprise)

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 :

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();
Mais bien sur j'ai une erreur au niveau du
Code : Sélectionner tout - Visualiser dans une fenêtre à part
rdr2 = selec.ExecuteReader();
J'ai vu plusieurs sujets traitant de cela mais je n'ai pas vraiment compris les solutions ... ou alors elles ne marchent pas.

Merci d'avance,

Mathieu