zoukankan      html  css  js  c++  java
  • GRIDVIEW中实现上移下移的存储过程

    建一个表  t_hoteladvertise

    有如下字段:
    ID  自动增长(主要)
    SortID  INT (主要)
    Title  NVARCHAR(50)

     

    CREATE proc sp_ehotel_DownAdvertise

    @ID INT
    as
    DECLARE @SortID int
    DECLARE @TempSortID INT
    DECLARE @TempID INT

    BEGIN  TRAN

    SELECT @SortID=SortID  from t_hoteladvertise where [ID]=@ID

    SELECT @TempSortID=max(SortID) from t_hoteladvertise where SortID>@SortID
    SELECT @TempID=[ID] from t_hoteladvertise WHERE
    SortID=@TempSortID

    if @@error>0 or @@rowcount<>1
    goto NeedRollBack

    UPDATE t_hoteladvertise SET SortID=@SortID WHERE [ID]=@TempID

    if @@error>0 or @@rowcount<>1
    goto NeedRollBack

    UPDATE t_hoteladvertise SET SortID=@TempSortID where [ID]=@ID

     NeedRollBack:
    if @@error>0 or @@rowcount<>1
      rollback tran
    else
    commit tran
    GO


    CREATE proc sp_ehotel_UpAdvertise
    @ID INT
    as
    DECLARE @SortID int
    DECLARE @TempSortID INT
    DECLARE @TempID INT

    BEGIN  TRAN

    SELECT @SortID=SortID  from t_hoteladvertise where [ID]=@ID

    SELECT @TempSortID=max(SortID) from t_hoteladvertise where SortID<@SortID
    SELECT @TempID=[ID] from t_hoteladvertise WHERE
    SortID=@TempSortID

    if @@error>0 or @@rowcount<>1
    goto NeedRollBack

    UPDATE t_hoteladvertise SET SortID=@SortID WHERE [ID]=@TempID

    if @@error>0 or @@rowcount<>1
    goto NeedRollBack

    UPDATE t_hoteladvertise SET SortID=@TempSortID where [ID]=@ID

     NeedRollBack:
    if @@error>0 or @@rowcount<>1
      rollback tran
    else
    commit tran
    GO



    代码段:
     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            SqlConnection conn = new SqlConnection();

           if (e.CommandName == "down")
            {
                int IndexID = Convert.ToInt32(e.CommandArgument);
                try
                {
                    XMLData.OpenDatabase(conn);
                    XMLData.ExecuteNonQuery(conn, "SP_EHOTEL_UPADVERTISE", IndexID);
                    Label2.Visible = true;
                    Label2.Text = "下移成功!";
                }
                catch (Exception)
                {
                    Response.Write("<script language='javascript'>alert('下移出错,点取消返回');</" + "script>");
                }
                finally
                {
                    XMLData.CloseDatabase(conn);
                    BindAdvertise();
                }
            }
            if (e.CommandName == "up")
            {
                int IndexID = Convert.ToInt32(e.CommandArgument);
                try
                {
                    XMLData.OpenDatabase(conn);
                    XMLData.ExecuteNonQuery(conn, "SP_EHOTEL_DOWNADVERTISE", IndexID);
                    Label2.Visible = true;
                    Label2.Text = "上移成功!";
                }
                catch (Exception)
                {
                    Response.Write("<script language='javascript'>alert('上移出错,点取消返回');</" + "script>");
                }
                finally
                {
                    XMLData.CloseDatabase(conn);
                    BindAdvertise();
                }
            }
        }

  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/724352.html
Copyright © 2011-2022 走看看