passer une liste a DbParameter.value
Bonjour,
Comment passer une liste à un DbParameter.value ?
J'ai tenté ceci :
Code:
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;
} |
mais cela ne fonctionne pas.
Il faut bien conserver cela : ?
Code:
1 2 3
|
lstIdBien.DbType = System.Data.DbType.Int32;
lstIdBien.Value = LstFavoris.FindAll(x => x.IdBien != -1).ToList(); |
Merci d'avance
Nath