事务处理是为了防止在网络

  事务处理是为了防止在网络上多用户对数据库的并发操作破坏数据的一致性和完整性,而事务处理主要通过SqlTransaction对象完成,其主要的方法有:Commit()方法主要负责提交事务处理完成真正的数据库查询更新操作,Rollback()方法主要负责当数据查询更新等数据库操作出现异常时的事务回滚。ADO.NET的事务处理主要通过SqlCommand对象来实现事务对象,代码如下:

  using (SqlConnection con = new SqlConnection("Data Source = localhost; Initial Catalog = UserDate; Integrated Security = True"))

  {

  SqlTransaction transql = null;//申明SqlTransaction对象的实例

  SqlCommand cmd = new SqlCommand();

  try

  {

  con.Open();//创建数据库链接

  transql = con.BeginTransaction();//开始事务处理

  cmd.Connection = con;//设置Command对象的链接

  cmd.Transaction = transql;//设置Command对象的事务

  //设置带参数的SQL语句

  cmd.CommandText = "INSERT INTO b1(name, company, position, shijian) VALUES(@Name, @Company, @Position, @Datetime)";

  //为参数赋值(注意参数在数据库中的数据类型)

  cmd.Parameters.Add(new SqlParameter("Name", Name.Text));

  cmd.Parameters.Add(new SqlParameter("Company", Company.Text));

  cmd.Parameters.Add(new SqlParameter("Position", Position.Text));

  cmd.Parameters.Add(new SqlParameter("Datetime", DateTime.Parse(Datetime.Text)));//注意数据类型转换

  //执行SQL语句

  cmd.ExecuteNonQuery();

  //提交事务

  transql.Commit();

  Response.Write("添加成功!
");

  }

  catch

  {

  //如果程序抛出异常则做事务回滚

  transql.Rollback();

  }

  }

  注:在上面的代码中,特别要注意SqlTransaction的实例接收的是SqlConnection实例的BeginTransaction()的返回值,SqlCommand的实例的Transaction属性接收的是SqlTransaction的实例,即SqlConnection实例的BeginTransaction()的返回值,而整个事务的过程是由SqlCommand实例来书写的,也就是说,在SqlCommand实例里面的代码相对应的事务都由SqlTransaction的实例自动生成,前提是必须要有transql = con.BeginTransaction();cmd.Transaction= transql;这两句代码,最后用SqlTransaction的Commit()方法或者Rollback()对事务进行提交或者回滚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值