存储过程介绍以及使用(转账,分页)(二)
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)
- {
- int fromId = Int32.Parse(txtFromId.Text);
- int money = Int32.Parse(txtMoney.Text);
- int toId = Int32.Parse(txtToId.Text);
- bool isSuccessed=false;
- isSuccessed = SqlHelper.ExecuteProcedure("TransferAccounts",
- new SqlParameter("@fromId", fromId),
- new SqlParameter("@money", money),
- new SqlParameter("@toId", toId),
- new SqlParameter("@isSuccessed",0));
- MessageBox.Show("" + isSuccessed);
- }
5.最后说下数据库可视化执行分页的存储过程
同样的,先创建
- Create procedure Paging (@pageSize int, @pageIndex int) --参数:每页显示的行数,页数的索引
- As
- begin with tempTable as(Select ROW_NUMBER() over(order by Id) as row, * from T_Users) --临时表,按Id排序,首列(row),记录所在行数
- Select * from tempTable where row between (@pageIndex-1)*@pageSize + 1 and @pageIndex*@pageSize
- End

本教程到此为止