存储过程介绍以及使用(转账,分页)(二)

2014-11-24 13:24:04 · 作者: · 浏览: 1
dure; //修改命令为执行存储过程!!!!!!
  • parameters[3].Direction = ParameterDirection.ReturnValue; //设置第四个参数为返回参数(为了测试方便就直接设置了)
  • cmd.Parameters.AddRange(parameters); //添加参数
  • cmd.ExecuteNonQuery(); //执行存储过程!!!!!!!!
  • int theReturn = (int)parameters[3].Value; //接收返回值
  • if (theReturn == 1) //bool类型在数据库为bit,返回值为 0 或 1
  • {
  • return true;
  • }
  • else
  • {
  • return false;
  • }
  • }
  • }
  • }
  • 界面层中调用一个存储过程

    private void btConfirm_Click(object sender, RoutedEventArgs e)

    1. {
    2. int fromId = Int32.Parse(txtFromId.Text);
    3. int money = Int32.Parse(txtMoney.Text);
    4. int toId = Int32.Parse(txtToId.Text);
    5. bool isSuccessed=false;
    6. isSuccessed = SqlHelper.ExecuteProcedure("TransferAccounts",
    7. new SqlParameter("@fromId", fromId),
    8. new SqlParameter("@money", money),
    9. new SqlParameter("@toId", toId),
    10. new SqlParameter("@isSuccessed",0));
    11. MessageBox.Show("" + isSuccessed);
    12. }

    5.最后说下数据库可视化执行分页的存储过程

    同样的,先创建

    1. Create procedure Paging (@pageSize int, @pageIndex int) --参数:每页显示的行数,页数的索引
    2. As
    3. begin with tempTable as(Select ROW_NUMBER() over(order by Id) as row, * from T_Users) --临时表,按Id排序,首列(row),记录所在行数
    4. Select * from tempTable where row between (@pageIndex-1)*@pageSize + 1 and @pageIndex*@pageSize
    5. End










    本教程到此为止