事务
事务
事务是一种机制,它确保多个SQL语句被当作单个工作单元来处理,其作用是:
1,一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。
2,可恢复性:一旦系统故障,数据库会自动地完全恢复未完 成的事务。
一.sql中的事务:他把所有包含的操作命令作为一个整体一起向系统提交或撤消,这一组数据库操作命令要么都执行,要么都不执行
开始事物:BEGIN TRANSACTION 提交事物:COMMIT TRANSACTION 回滚事务:ROLLBACK TRANSACTION
@@ERROR,获得错误,如果有错则,else则。。。。
二.利用C#编写的事务
例子:
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
public string sqlconn = System.Configuration.ConfigurationManager.ConnectionStrings["SQLCONN"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
}
private void btn()
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand();
SqlTransaction Transaction = null;
try
{
//打开数据库连接conn.Open();
//开启事务Transaction=conn.BeginTransactio();
cmd.Transaction = Transaction;
cmd.Connection = conn;
string sql = "insert into Students values('杨飞宰',D','N2d08007')";
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
string sql2 = "insert into Stud_Subjects values('C#','98','1')";
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql2;
cmd.ExecuteNonQuery();
//提交事务
Transaction.Commit();
Response.Write("添加成功!");
}
catch
{
//事务回滚
Transaction.Rollback();
Response.Write("添加失败!");
}
finally
{
//释放事务
Transaction.Dispose();
//关闭数据库连接
conn.Close();
}
}
}