#region "事务"
//create table [user]
//(
// uname varchar(5),
// password varchar(10),
// age int,
// address varchar(10)
//)
//delete from [user] where uname = '李四'
//update [user] set address = '合肥工大' where uname = '张三'
//insert into [user] values ('王五', 'aaa', 24, '工大西门')
//delete from [user]
//insert into [user] values ('张三', 'abc', 21, '安徽合肥')
//insert into [user] values ('李四', 'xyz', 22, '清华IT')
//select * from [user]
#endregion
void 事务()
{
OleDbConnection con = new OleDbConnection(sqlcon);
con.Open();
OleDbTransaction tra = con.BeginTransaction(); // 启动事务
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.Transaction = tra;
string s =
@"begin
delete from [user] where uname = '李四';
update [user] set address = '合肥工大' where uname = '张三';
insert into [user] values ('王五', 'aaa', 24, '工大西门');
end";
try
{
cmd.CommandText = s;
int iRowNum = cmd.ExecuteNonQuery(); // 注意: 返回值
tra.Commit(); // 事务提交
}
catch
{
tra.Rollback(); // 事务回滚
}
con.Close();
}
#region "存储过程"
//create proc 转帐 @金额 int
//as
//update bank set [money] = [money] - @金额 where uname = '张三'
//update bank set [money] = [money] + @金额 where uname = '李四'
//create table bank
//(
// uname varchar(5),
// [money] int
//)
//delete from bank
//insert into bank values('张三', 20000)
//insert into bank values('李四', 100)
//select * from bank
//exec 转帐 500
#endregion
void 存储过程()
{
OleDbConnection con = new OleDbConnection(sqlcon);
con.Open();
OleDbParameter par = new OleDbParameter();
par.ParameterName = "金额"; // 参数名称
par.OleDbType = OleDbType.Integer; // 参数数据类型
par.Value = 500; // 参数值
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure; // 命令是存储过程
cmd.Parameters.Add(par); // 添加参数
cmd.CommandText = "转帐";
cmd.ExecuteNonQuery();
con.Close();
}