C#事务

string sql = string.Format("insert into test(id,title) values(1,'测试事务一')");
// 插入财务表
string sql1 = string.Format("insert into test1(id,title) values(2,'测试事务二',3)");
try
{
// 连接sqlserver数据库
using (SqlConnection con = new SqlConnection(DataConn.strZjCon))
{
// 打开连接
con.Open();
// 开启事务
SqlTransaction tra = con.BeginTransaction();
//Sqlserver数据库的SQL语句的执行
SqlCommand cmd = new SqlCommand();
//获取或设置 SqlCommand 的此实例使用的 SqlConnection。
cmd.Connection = con;
//获取或设置将在其中执行 SqlCommand 的数据库事务对象 SqlTransaction。
cmd.Transaction = tra;
//SqlCommand对象中要执行的SQL语句
cmd.CommandText = sql;
// 返回影响的行数,主要用于增删改操作。
count += cmd.ExecuteNonQuery();
cmd.CommandText = sql1;
count += cmd.ExecuteNonQuery();
if (count == 2)
{
resultData.msg = "操作成功";
//提交事务
tra.Commit();
}
else
{
resultData.msg = "操作失败";
//回滚事务
tra.Rollback();
}
con.Dispose();
con.Close();
}
}
catch (Exception ex)
{
ex.Message.ToString();
}
return resultData;
}
查询出相同id
select id,count(*) as num from cw group by id
SqlCommand常用属性和方法:
一、SqlCommand类常用属性
CommandText:设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。
CommandTimeout: 获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
CommandType:获取或设置一个值,该值指示释 CommandText 是SQL语句,存储过程还是表操作。
Connection:获取或设置 SqlCommand 的此实例使用的 SqlConnection。
Parameters:获取 SqlParameterCollection参数集合。
Transaction :获取或设置将在其中执行 SqlCommand 的数据库事务对象 SqlTransaction。
二、SqlCommand类常用方法
ExecuteNonQuery()方法:返回影响的行数,主要用于增删改操作。
ExecuteScalar()方法 :返回第一行第一列,例如我们在计算总条数的时候会使用到此方法。
ExecuteReader()方法:创建一个SqlDataReader用于读取数据,用于查询数据。
ExecuteXmlReader()方法:返回System.XmlReader实例,用于读取SQLServer中的XML字段的值
本文详细介绍了如何在C#中进行数据库事务处理,包括开启事务、执行SQL命令以及事务的提交和回滚。示例代码展示了如何插入数据,并通过ExecuteNonQuery方法检查受影响的行数来判断操作是否成功。同时,提到了SqlCommand类的常用属性和方法,如ExecuteNonQuery、ExecuteScalar和ExecuteReader,以及如何使用它们进行数据库操作。
2161

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



