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字段的值