/// <summary>
        /// ͨ��������ƷID���������Ʒʵ��
        /// </summary>
        /// <param name="productID"></param>
        /// <returns></returns>
        public Product GetProductByProductID(int productID)
        {
            Product product = new Product();

            using (SqlConnection conn = new SqlConnection(DataHelper2.SqlConnectionString))
            {
                string commText = "select * from Product where ProductID="+productID.ToString();

                using (SqlCommand comm = new SqlCommand())
                {
                    comm.Connection = conn;
                    comm.CommandText = commText;
                    conn.Open();

                    using (SqlDataReader sdr = comm.ExecuteReader())
                    {
                        if (sdr.Read())
                        {
                            product.ProductID = int.Parse(sdr["ProductID"].ToString());
                            product.ProductName = sdr["ProductName"].ToString();
                            product.ProductCompany = sdr["ProductCompany"].ToString();
                            product.ProductCompanyDescription = sdr["ProductCompanyDescription"].ToString();
                            product.ProductPictureStoreIDs = sdr["ProductPictureStoreIDs"].ToString();
                            product.ProductHits = int.Parse(sdr["ProductHits"].ToString());
                            product.ProductDescription = sdr["ProductDescription"].ToString();
                            product.HairShopIDs = sdr["HairShopIDs"].ToString();
                            product.ProductRawPrice = sdr["ProductRawPrice"].ToString();
                            product.ProductPrice = sdr["ProductPrice"].ToString();
                            product.ProductDiscount = sdr["ProductDiscount"].ToString();
                            product.ProductTagIDs = sdr["ProductTagIDs"].ToString();
                        }
                    }
                }
            }

            return product;
        }
        /// <summary>
        /// ������Ʒ ��ӣ�ɾ�����޸�
        /// </summary>
        /// <param name="product"></param>
        /// <param name="ua"></param>
        /// <returns></returns>
        public bool ProductCreateDeleteUpdate(Product product, UserAction ua,out int newID)
        {
            bool result = false;
            string commandText = string.Empty;
            switch (ua)
            {
                case UserAction.Create:
                    commandText = "insert into Product(ProductName,ProductCompany,ProductCompanyDescription,ProductPictureStoreIDs,ProductDescription,HairShopIDs,ProductRawPrice,ProductPrice,ProductDiscount,ProductTagIDs) values('"+product.ProductName+"','"+product.ProductCompany+"','"+product.ProductCompanyDescription+"','"+product.ProductPictureStoreIDs+"','"+product.ProductDescription+"','"+product.HairShopIDs+"','"+product.ProductRawPrice+"','"+product.ProductPrice+"','"+product.ProductDiscount+"','"+product.ProductTagIDs+"');select @@identity;";
                    break;
                case UserAction.Delete:
                    commandText = "delete from Product where ProductID="+product.ProductID.ToString();
                    break;
                case UserAction.Update:
                    commandText = "update Product set ProductName='"+product.ProductName+"',ProductCompany='"+product.ProductCompany+"',ProductCompanyDescription='"+product.ProductCompanyDescription+"',ProductPictureStoreIDs='"+product.ProductPictureStoreIDs+"',ProductDescription='"+product.ProductDescription+"',HairShopIDs='"+product.HairShopIDs+"',ProductRawPrice='"+product.ProductRawPrice+"',ProductPrice='"+product.ProductPrice+"',ProductDiscount='"+product.ProductDiscount+"',ProductTagIDs='"+product.ProductTagIDs+"' where ProductID = "+product.ProductID.ToString();
                    break;
            }
            using (SqlConnection conn = new SqlConnection(DataHelper2.SqlConnectionString))
            {
                using (SqlCommand comm = new SqlCommand())
                {
                    comm.CommandText = commandText;
                    comm.Connection = conn;
                    conn.Open();
                    try
                    {
                        try
                        {
                            newID = Convert.ToInt32(comm.ExecuteScalar());
                        }
                        catch (InvalidCastException)
                        {
                            newID = 0;
                        }
                        result = true;
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }

                }
            }
            if (ua == UserAction.Delete)
            {
                using (SqlConnection conn = new SqlConnection(DataHelper2.SqlConnectionString))
                {
                    result = false;
                    commandText = "delete from ProductRecommand where ProductRawID=" + product.ProductID.ToString();
                    using (SqlCommand comm = new SqlCommand())
                    {
                        comm.CommandText = commandText;
                        comm.Connection = conn;
                        conn.Open();
                        try
                        {
                            comm.ExecuteNonQuery();
                            result = true;
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }

                    }
                }
            }
            return result;
        }
        public List<Product> GetProducts(int count, OrderKey ok,string productName)
        {
            List<Product> list = new List<Product>();

            string orderKey = " order by ";
            switch (ok)
            {
                case OrderKey.ID:
                    orderKey += "ProductID desc";
                    break;
                //case OrderKey.CommentNum:
                //������δ��Ԥ������ݲ�ʵ��
                //    orderKey += "he.HairEngineerGood+he.HairEngineerBad desc";
                //    break;
                case OrderKey.HitNum:
                    orderKey += "ProductHits desc";
                    break;
                default:
                    orderKey += "ProductID desc";
                    break;

            }

            string commText = "";
            switch (count)
            {
                case 0:
                    commText = "select * from Product where ProductName like '%"+productName+"%'" + orderKey;
                    break;
                default:
                    commText = "select top " + count.ToString() + " * from Product where ProductName like '%" + productName + "%'" + orderKey;
                    break;
            }

            using (SqlConnection conn = new SqlConnection(DataHelper2.SqlConnectionString))
            {
                {
                    using (SqlCommand comm = new SqlCommand())
                    {
                        comm.Connection = conn;
                        comm.CommandText = commText;
                        conn.Open();

                        using (SqlDataReader sdr = comm.ExecuteReader())
                        {
                            while (sdr.Read())
                            {
                                Product product = new Product();

                                product.ProductID = int.Parse(sdr["ProductID"].ToString());
                                product.ProductName = sdr["ProductName"].ToString();
                                product.ProductCompany = sdr["ProductCompany"].ToString();
                                product.ProductCompanyDescription = sdr["ProductCompanyDescription"].ToString();
                                product.ProductPictureStoreIDs = sdr["ProductPictureStoreIDs"].ToString();
                                product.ProductHits = int.Parse(sdr["ProductHits"].ToString());
                                product.ProductDescription = sdr["ProductDescription"].ToString();
                                product.HairShopIDs = sdr["HairShopIDs"].ToString();
                                product.ProductRawPrice = sdr["ProductRawPrice"].ToString();
                                product.ProductPrice = sdr["ProductPrice"].ToString();
                                product.ProductDiscount = sdr["ProductDiscount"].ToString();
                                product.ProductTagIDs = sdr["ProductTagIDs"].ToString();

                                list.Add(product);
                            }
                        }
                    }
                }
            }

            return list;
        }