Bonjour,
Comment passer une liste à un DbParameter.value ?
J'ai tenté ceci :
mais cela ne fonctionne 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 private List<Bien> GetBienFromLstFavorisDB(DbConnection cnx, List<Favoris> LstFavoris) { List<Bien> listeBien = new List<Bien>(); using (DbCommand cmd = cnx.CreateCommand()) { cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "SELECT * FROM Bien where idBien IN (@lstIdBien) "; DbParameter lstIdBien = cmd.CreateParameter(); lstIdBien.ParameterName = "@lstIdBien"; lstIdBien.DbType = System.Data.DbType.Int32; lstIdBien.Value = LstFavoris.FindAll(x => x.IdBien != -1).ToList(); lstIdBien.Direction = System.Data.ParameterDirection.Input; cmd.Parameters.Add(lstIdBien); using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { Bien bien = new Bien(); bien.Id = reader["idBien"] == DBNull.Value ? default(int) : int.Parse(reader["idBien"].ToString()); bien.PrixComComprise = reader["prixComComprise"] == DBNull.Value ? default(int) : int.Parse(reader["prixComComprise"].ToString()); bien.Surface = reader["surface"] == DBNull.Value ? default(int) : int.Parse(reader["surface"].ToString()); bien.TextAnnonce = reader["textAnnonce"] == DBNull.Value ? default(String) : (reader["textAnnonce"].ToString()); bien.PhotoPrincipal = reader["nomFic"] == DBNull.Value ? default(String) : (reader["nomFic"].ToString()); bien.CP = reader["cp"] == DBNull.Value ? default(String) : (reader["cp"].ToString()); listeBien.Add(bien); } } } return listeBien; }
Il faut bien conserver cela : ?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 lstIdBien.DbType = System.Data.DbType.Int32; lstIdBien.Value = LstFavoris.FindAll(x => x.IdBien != -1).ToList();
Nath
Partager