Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: StoredProcedure lấy menu của sản phẩm down nhiều nhất

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    50

    Question StoredProcedure lấy menu của sản phẩm down nhiều nhất

    Đây là code StoredProcedure

    Code:
    BEGIN
    DECLARE @Sql nvarchar(MAX), @Sql1 nvarchar(MAX),@count int
    SET @Sql = ''
    SET @Sql1 = ''
    SET @count = 1
    
    SET @Sql1 = @Sql1 + N''
    DECLARE @cateID int, @linkto nvarchar(MAX), @target varchar(20)
    DECLARE Cursor_Product CURSOR FOR
    	SELECT Menu.menuCategoryId, Category.categoryLinkTo, Category.categoryTarget
    	FROM Category INNER JOIN Menu ON Menu.menuCategoryId = Category.categoryID 
    	WHERE Category.Decen=0 AND Category.categoryLink <> 'default' ORDER BY Menu.menuOrdering
    	OPEN Cursor_Product
    	FETCH NEXT FROM Cursor_Product INTO @cateID, @linkto, @target
    	WHILE @@FETCH_STATUS = 0
    		BEGIN
    			IF LEN(@linkto) = 0
    				SELECT @linkto = dbo.fuCategoryLinkProduct(@cateID)
    			IF dbo.fuCountSubCate(@cateID) > 0
    				BEGIN
    					SET @count = @count + 1
    					SET @Sql = @Sql + '<table border="0" cellspacing="0" cellpadding="0" width="95%" style="padding-left:5px;"><tr>'
    					SET @Sql = @Sql + '<td valign="middle" width="10px" align="left" style="padding-top:20px;">'+ @count +'.</td>'
    					DECLARE @proName nvarchar(MAX), @down int,@cateID_2 int, @linkto_2 nvarchar(MAX), @target_2 varchar(20)
    					DECLARE Cursor_Product_2 CURSOR FOR
    						SELECT TOP(7) tblProducts.productName, tblProducts.productDownload, Category.categoryID, Category.categoryLinkTo, Category.categoryTarget
    						FROM tblProducts INNER JOIN tblProductVer ON tblProductVer.productVerID = tblProducts.productVerID INNER JOIN Category ON Category.categoryID = tblProductVer.categoryID
    						WHERE Category.categoryParentId = @cateID AND Category.Decen = 1 AND Category.categoryState = 1 ORDER BY tblProducts.productDownload DESC
    						OPEN Cursor_Product_2
    						FETCH NEXT FROM Cursor_Product_2 INTO @proName, @down,@cateID_2, @linkto_2, @target_2
    						WHILE @@FETCH_STATUS = 0
    							BEGIN
    								IF LEN(@linkto_2) = 0
    									SELECT @linkto_2 = dbo.fuCategoryLinkProduct(@cateID_2)
    								IF dbo.fuCountSubCate(@cateID_2) = 0
    									BEGIN
    										SET @Sql = @Sql + '<td valign="middle" align="left" style="padding:20px 0 2px 5px"><a href="'+ @linkto_2 +'" target="'+ @target_2 +'" title="' + @proName + '">'+ @proName +'</a></td>'
    										SET @Sql = @Sql + '<td valign="middle" align="center" style="padding-top:20px;">'+ @down +'</td>'
    									END
    								FETCH NEXT FROM Cursor_Product_2 INTO @proName, @down,@cateID_2, @linkto_2, @target_2
    							END
    						CLOSE Cursor_Product_2
    						DEALLOCATE Cursor_Product_2
    						SET @Sql = @Sql + '</tr></table>'
    				END
    			FETCH NEXT FROM Cursor_Product INTO @cateID, @linkto, @target
    		END
    	CLOSE Cursor_Product
    	DEALLOCATE Cursor_Product
    	SET @Sql = @Sql + ''
    	SET @Sql = @Sql1 + @Sql
    	SELECT @Sql AS Prodown
    END
    Đây là code trong Control

    Code:
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ltrDownload.Text = loadProduct();
            }
        }
        private string loadProduct()
        {
            string prodown = "";
            clProducts product = new clProducts();
            DataTable dtbMenu = product.Products_Mostdown();
            if (dtbMenu.Rows.Count > 0)
            {
                prodown = dtbMenu.Rows[0]["Prodown"].ToString() + "";
            }
            product = null;
            return prodown;
        }
    Đây là code trong clProducts

    Code:
    public DataTable Products_Mostdown()
            {
                return ExecuteSelectReturnTable("spProducts_Down");
            }
    Code trong DataAccess

    Code:
     public DataTable ExecuteSelectReturnTable(string strSQL)
            {
                sqlCn = OpenConnect();
                SqlDataAdapter Adapter = new SqlDataAdapter(strSQL, sqlCn);
                DataTable ds = new DataTable();
                try
                {
                    Adapter.Fill(ds);
                    CloseConnect(sqlCn);
                }
                catch (SqlException E)
                {
                    string strDescriptionError = E.Message;
                }
                finally
                {
                    if (sqlCn.State == ConnectionState.Open)
                        sqlCn.Close();
                    sqlCn.Dispose();
                }
                return ds;
    
            }
    Mọi người xem hộ em xem sai ở chỗ nào em mới học viết nên còn gà làm mãi mà nó ko hiện ra :(

  2. #2
    Ngày gia nhập
    09 2009
    Bài viết
    42

    Sao không thấy SqlCommand hỉ. Kết nối trong Stored Procedures khác kiểu trực tiếp một chút:
    Code:
    myCommand.CommandText = "tên stored procedure";
    myCommand.CommandType = CommandType.StoredProcedure;
    Còn nhìn cái code Sql của bạn mình vãi quá, không đọc
    Đã được chỉnh sửa lần cuối bởi HONG REU : 30-10-2011 lúc 09:26 PM.

  3. #3
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Nhìn cái stored procedure là không muốn đọc rồi. Bao giờ mình mơi lên trình độ như vậy...

  4. #4
    Ngày gia nhập
    03 2011
    Bài viết
    464

    Code:
    public DataTable Products_Mostdown()
            {
                return ExecuteSelectReturnTable("spProducts_Down");
            }
    Thay bằng
    Code:
    public DataTable Products_Mostdown()
            {
                return ExecuteSelectReturnTable("Exec spProducts_Down");
            }
    bongda24h.tv

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    50

    Trích dẫn Nguyên bản được gửi bởi HONG REU Xem bài viết
    Sao không thấy SqlCommand hỉ. Kết nối trong Stored Procedures khác kiểu trực tiếp một chút:
    Code:
    myCommand.CommandText = "tên stored procedure";
    myCommand.CommandType = CommandType.StoredProcedure;
    Còn nhìn cái code Sql của bạn mình vãi quá, không đọc
    cái đấy tất nhiên là phải có rồi nhưng ko viết vào thôi

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    50

    Mặc định StoredProcedure lấy menu của sản phẩm down nhiều nhất

    Trích dẫn Nguyên bản được gửi bởi hdcong Xem bài viết
    Nhìn cái stored procedure là không muốn đọc rồi. Bao giờ mình mơi lên trình độ như vậy...
    bạn cố gắng thêm tý thì làm được ngay mà mới đầu mình cũng thế mà )

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    50

    Trích dẫn Nguyên bản được gửi bởi elkidvnn1 Xem bài viết
    Code:
    public DataTable Products_Mostdown()
            {
                return ExecuteSelectReturnTable("spProducts_Down");
            }
    Thay bằng
    Code:
    public DataTable Products_Mostdown()
            {
                return ExecuteSelectReturnTable("Exec spProducts_Down");
            }
    mình làm cũng gần được rồi cách của bạn làm ko ra luôn nhưng dù sao cũng cám ơn bạn đã bỏ thời gian ra giúp mình

Các đề tài tương tự

  1. vấn đề về StoredProcedure trong C# | help me @@!
    Gửi bởi congchinhqn trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 7
    Bài viết cuối: 09-11-2010, 12:06 AM
  2. Các anh chạy thử.đến phần chọn menu->chọn 1-> nó bị nhảy lung tung??
    Gửi bởi chienca191 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 19-08-2009, 10:59 PM
  3. Tìm phần tử bé nhất của ma trận và đếm xem có bao nhiều phần tử bé nhất??
    Gửi bởi rong3sao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 03-04-2009, 10:14 AM
  4. Nhận Giá Trị Trả Về Của StoredProcedure
    Gửi bởi minhitcn2 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 07-04-2008, 10:09 PM
  5. Sử dụng một phần menu chính cho menu ngữ cảnh trong lập trình C#
    Gửi bởi baokhanhk28 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 30-12-2006, 05:39 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn