我有这个要求,如何在lambda表达式或linq中做到这一点?
产品可以有多个图像和只有一个默认图像。如果属性isDefault
等于true,则可以确定产品的默认图像。
我想这样做的LINQ和lambda但我在我的代码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标志进行SQL检查,以消除其余的图像。或者是否需要同时抓取所有图像? – NoLifeKing 2011-02-07 15:36:16