static void Main(string[] args)
{
Console.WriteLine(Text("Persist Security Info=True;Data Source=.;Initial Catalog=test;User ID=sa;Password=sa;MultipleActiveResultSets=True;Connect Timeout=30"));
Console.ReadLine();
}
static public int Text(string connString)
{int num = 0;
string sql =
@"begin try begin transaction t
DECLARE @error int
insert into test.dbo.info(
[name]
,[isType])values('2222','12'),('2222','ww')
commit transaction t
set @error=5
end try
begin catch
rollback transaction t
set @error=3
end catch
select @error";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
num = (Int32)cmd.ExecuteNonQuery();//返回影响行数,如果catch返回0,如果insert错误返回-1
num = (Int32)cmd.ExecuteScalar();//返回@error的值
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return (int)num;
}
本文介绍了一个使用C#进行SQL事务处理及错误捕捉的具体实例,通过一个具体的插入操作演示了如何开始事务、提交或回滚,并设置错误标志来判断操作是否成功。
6315

被折叠的 条评论
为什么被折叠?



