关于transaction(C#\SQL-Server)
2007-07-27 09:54
423 查看
这两天写程序用到了transaction。本来想在SQL-Server中的存储过程中写,发现直接在C#程序中写也很方便,于是在C#中完成了。现在把两种transaction的方式写出来。
在C#中:红色字体是使用transaction的关键部分
Common comm = new Common();
Session["lunwbh"] = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex]["论文编号"]);
SqlConnection conn = new SqlConnection(comm.getsqlconnection());
conn.Open();
SqlCommand command = new SqlCommand("Pro_BianJ_LunW",conn);
command.CommandType = CommandType.StoredProcedure;
SqlParameter parm1 = command.Parameters.Add("@LunWBH", SqlDbType.Int, 4);
parm1.Direction = ParameterDirection.Input;
parm1.Value = Convert.ToInt32(Session["lunwbh"]);
SqlParameter parm2 = command.Parameters.Add("@BianJM", SqlDbType.VarChar, 20);
parm2.Direction = ParameterDirection.Input;
parm2.Value = Convert.ToString(Session["ZhuCYHM"]);
SqlTransaction trans;
trans = conn.BeginTransaction();
command.Transaction = trans;
try
{
command.ExecuteNonQuery();
trans.Commit();
Response.Write("<script>alert('已经把这篇论文放到您的论文库中!')</script>");
}
catch
{
trans.Rollback();
Response.Write("<script>alert('保存失败!')</script>");
}
finally
{
conn.Close();
}
在存储过程中的transaction:(摘自MSDN)
DECLARE @TranName VARCHAR(20);
SELECT @TranName = 'MyTransaction';
BEGIN TRANSACTION @TranName;
USE AdventureWorks;
DELETE FROM AdventureWorks.HumanResources.JobCandidate
WHERE JobCandidateID = 13;
COMMIT TRANSACTION @TranName;
GO
在C#中:红色字体是使用transaction的关键部分
Common comm = new Common();
Session["lunwbh"] = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex]["论文编号"]);
SqlConnection conn = new SqlConnection(comm.getsqlconnection());
conn.Open();
SqlCommand command = new SqlCommand("Pro_BianJ_LunW",conn);
command.CommandType = CommandType.StoredProcedure;
SqlParameter parm1 = command.Parameters.Add("@LunWBH", SqlDbType.Int, 4);
parm1.Direction = ParameterDirection.Input;
parm1.Value = Convert.ToInt32(Session["lunwbh"]);
SqlParameter parm2 = command.Parameters.Add("@BianJM", SqlDbType.VarChar, 20);
parm2.Direction = ParameterDirection.Input;
parm2.Value = Convert.ToString(Session["ZhuCYHM"]);
SqlTransaction trans;
trans = conn.BeginTransaction();
command.Transaction = trans;
try
{
command.ExecuteNonQuery();
trans.Commit();
Response.Write("<script>alert('已经把这篇论文放到您的论文库中!')</script>");
}
catch
{
trans.Rollback();
Response.Write("<script>alert('保存失败!')</script>");
}
finally
{
conn.Close();
}
在存储过程中的transaction:(摘自MSDN)
DECLARE @TranName VARCHAR(20);
SELECT @TranName = 'MyTransaction';
BEGIN TRANSACTION @TranName;
USE AdventureWorks;
DELETE FROM AdventureWorks.HumanResources.JobCandidate
WHERE JobCandidateID = 13;
COMMIT TRANSACTION @TranName;
GO
相关文章推荐
- 关于transaction(C#/SQL-Server)
- 关于transaction(C#\SQL-Server)
- 关于transaction(C#/SQL-Server),批量处理数据
- 关于多重条件的搜索查询(sql server+c#)
- 关于c# 和 SQL SERVER 2000 日期比较查询的一点点经验,记录一下,免得忘记!
- SQL Server类型与C#类型对应关系
- C#之MS SQL SERVER
- C#向SqlServer varbinary类型插数据
- 欢迎C#/ASP.NET/MS SQL Server开发Web程序的朋友加入Edrp开发组
- Sql Server每日一练-关于SQL Server 2000 的问答
- c# sqlserver blod字段的读取
- 关于对MS SQLServer 实例的理解
- 关于SQL中,C#监视某张表SqlDependency学习笔记
- C# SQL Server的封装(SQLDataAdapter等)之一(共二)
- 关于连接数据库失败、SQLServer xxxx 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时。)
- How to Find All SQL Server Instance Running in Local Network c#
- 关于Server Sql 2008触发器的使用
- 关于Microsoft SQL Server 2008
- 关于sql server char,nchar,varchar,nvarchar的区别
- C#中关于SqlDataAdapter的Update(dataTable)方法