asp.net事物【鸡蛋】
来源:互联网 发布:家庭网络共享文件 编辑:程序博客网 时间:2024/05/02 17:49
存储过程创建事物:--创建表CREATE TABLE [dbo].[TAccount]([PKID] [int] IDENTITY(1,1) NOT NULL,[AccountName] [nvarchar](50) NULL,[AccountMoney] [money] NULL)--插入数据INSERT INTO dbo.TAccount VALUES('小张',3000)INSERT INTO dbo.TAccount VALUES('小刘',8000)--例如:小刘转账1000给小张CREATE PROCEDURE PRO_Transfer@toID int,@fromID int,@moneys money,@return int outputASBEGINBEGIN TRAN --开始事物Set xact_abort on --表示遇到错误立即回滚所有 off为只回滚到错误的地方 UPDATE dbo.TAccount SET [AccountMoney]=[AccountMoney]-@moneys WHERE [PKID]=@fromIDUPDATE dbo.TAccount SET [AccountMoney]=[AccountMoney]+@moneys WHERE [PKID]=@toIDif @@ERROR<>0 BEGINROLLBACK TRAN --如果有错误就执行回滚SET @return=1 --错误返回值ENDELSEBEGINCOMMIT TRAN --语句执行成功,提交事务SET @return=2 --正确返回值ENDEND
2 ADO.net事务
Ado.net事务可能是大家一般都用的
优点:简单,效率和数据库事务差不多。
缺点:事务不能跨数据库,只能在一个数据库连接上。如果是两个数据库上就不能使用该事务了。
Demo:
/// <summary>
/// 一般的ADO.net 事务
/// </summary>
public void ADONetTran1()
{
SqlConnection conn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=123;");
SqlCommand cmd = new SqlCommand();
try
{
cmd.CommandText = "Update Region Set RegionDescription=@UpdateValue where RegionID=@UpdateID";
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter ("@UpdateID",SqlDbType.Int,32),
new SqlParameter ("@UpdateValue",SqlDbType .NChar,50)};
paras[0].Value = "2";
paras[1].Value = "Update Value12";
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
//开始事务
cmd.Transaction = conn.BeginTransaction();
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into Region values(@InsertID,@InsertValue)";
cmd.CommandType = CommandType.Text;
paras = new SqlParameter[]{
new SqlParameter ("@InsertID",SqlDbType.Int ,32),
new SqlParameter ("@InsertValue",SqlDbType.NChar ,50)};
paras[0].Value = "7";
paras[1].Value = "Insert Value";
cmd.Parameters.Clear();
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
cmd.ExecuteNonQuery();
//提交事务
cmd.Transaction.Commit();
}
catch
{
//回滚事务
cmd.Transaction.Rollback();
throw;
}
finally
{
conn.Close();
}
}
- asp.net事物【鸡蛋】
- 事物【鸡蛋】
- asp.net 事物的处理
- ASP.NET 事物(Transaction)的使用
- asp.net mvc3标识和事物
- 鸡蛋
- spring.net 的事物管理
- ADO.NET级别的事物
- 事物
- 事物
- 事物
- 事物
- 事物
- 事物
- 事物
- 事物
- 事物
- 事物
- 计算机视觉领域(Computer Vision)会议和期刊论文名简称
- -qws命令
- silverlight为自定义控件添加事件
- 过英语四级的技巧(听力篇)
- javascript同源策略和跨域实验及其跨域解决办法
- asp.net事物【鸡蛋】
- 北京雅酷卡游泳场馆详细列表
- Android APK反编译得到Java源代码和资源文件
- Linux内存buffer和cache的区别
- JSONObject与JSONArray的使用
- 用SQL语句统计一个表的列
- 利用Solr搭建企业搜索平台之一-Solr运行
- 关于成长
- VC如何更改单文档应用程序的标题