私はこの要件を持っています。ラムダ式またはlinqでこれを行うには?
製品には複数の画像と1つのデフォルト画像しか存在できません。プロパティーisDefault
がtrueの場合、製品のデフォルト・イメージを判別できます。
は私がLINQとラムダでそれをやってみたいが、私は私のコードでstuckedだ:
private class ProdcutImages
{
public Int32 ID { get; set; }
public String ProductID { get; set; }
public Boolean IsDefault { get; set; }
public Image Image { get; set; }
public String FileName { get; set; }
}
public void SetDefaultImage(int productID)
{
SqlConnection conn = getConnection();
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM product_images WHERE product_id = @ID", conn);
da.SelectCommand.Parameters.Add(new SqlParameter("@ID", productID));
DataTable dt = new DataTable();
da.Fill(dt);
var imageList = (from tr in dt.AsEnumerable()
select new ProdcutImages()
{
ID = tr.Field<int>("id"),
ProductID = tr.Field<string>("productId"),
IsDefault = tr.Field<bool>("isDefault"),
Image = tr.Field<Image>("image"),
FileName = tr.Field<string>("fileName")
}).ToList();
pictureBox1.Image = // ???
conn.Close();
}
isDefault-flagのSQLチェックを行い、残りのイメージを削除することができます。または、同時にすべての画像を取得する必要がありますか? – NoLifeKing