C#操作SqlServer数据库事务

操作事务

复制代码
```cs
// 1.连接数据库
string connstring = @"Server = 李昊轩-212\MSSQLSERVER11;Database = Student;uid = sa;Pwd= 123456";
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
// 2.创建多个sql语句
List<string> list = new List<string>() {
    "delete from XueSheng where StudentId = 1004",
    "delete from XueSheng where StudentId = 100"
};
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
try
{
    // 3.开启事务
    cmd.Transaction = conn.BeginTransaction();
    foreach (string s in list)
    {
        // 4.设置执行的sql
        cmd.CommandText = s;
        cmd.ExecuteNonQuery();
    }
    // 5. 如果没有出错 提交事务
    cmd.Transaction.Commit();
}
// 6. 如果执行错误 跳转到catch里面 在catch执行回滚
catch (Exception e)
{
    if (cmd.Transaction != null)
    {
        cmd.Transaction.Rollback(); // 执行sql语句有错误的情况 执行回滚操作
    }
    throw new Exception("执行删除sql事务出错:" + e.Message);
}
finally
{
    // 7.不管是否执行有误 把事务设置为null 清除事务
    if(cmd.Transaction!= null)
    {
        cmd.Transaction = null;
    }
    conn.Close();
}
```
相关推荐
love530love7 分钟前
Duix-Avatar 去 Docker Desktop 本地化完整复盘
人工智能·pytorch·windows·python·docker·容器·数字人
character082510 分钟前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
张人玉13 分钟前
C# 中的 MVC、MVP、MVVM 模式详解
开发语言·c#·mvc·mvvm·mvp
skywalk816315 分钟前
iwr -useb https://openclaw.ai/install.ps1 | iex 这里的iwr怎么安装?
windows
NineData16 分钟前
NineData 新增支持 MySQL 到 openGauss PostgreSQL 兼容版数据复制链路
数据库·mysql·程序员
晨曦_子画17 分钟前
C# sql语句含有 like %name%如何提高查询效率
数据库·sql·c#
云贝教育-郑老师18 分钟前
【5分钟学会部署OpenTenBase V5.0 for CentOS 7.8】
数据库·oracle
阿贵---23 分钟前
定时任务专家:Python Schedule库使用指南
jvm·数据库·python
TsukasaNZ23 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
浩瀚之水_csdn23 分钟前
++ Lambda 表达式详解
java·jvm·windows