C#异常处理使用,ADO.NET启用事务,事务在开发中的一些用法

本文介绍了C#中的异常处理机制,包括异常的形式、处理结构和处理方式,强调了异常处理在保证程序稳定运行中的重要性。此外,还详细讲解了事务的使用,包括事务在数据库存储过程中的应用,以及如何在程序端处理事务,确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、异常处理
二、程序中事务的一些用法介绍

一、异常的介绍和使用

1、异常的形式: 为了保证程序不会因为操作出现问题导致程序崩溃,需要添加异常。不处理异常会导致程序崩溃(CLR给出的 提示)

  • try中写上可能会 发生异常错误的代码;程序本身会把发生异常错误的类型自动生成一个异常对象类
  • catch中是捕获的异常,并处理异常,也可以写入日志(抛出和封装异常再抛出)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace exeception1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
            
                int n = Convert.ToInt32(Console.ReadLine());	//产生异常的语句 (输入123cuowu)
                Console.WriteLine("n转化为int类型后为:"+n);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);//输出产生的异常信息
            }
            Console.ReadKey();
        }
    }
}

2、异常处理的结构:

多路异常捕获:
try
{
会发生异常的代码都放在这里
}
catch(SqlException ex)//异常子类
{
SQLserver数据库异常信息;
//比如SQLserver数据库删除数据时,外键引用导致的错误 ,错误代码547
}
catch(Exception ex)//异常父类
{
SqlException异常没有捕获的异常,在这里一定能捕获
}
finally
{
不管有没有异常都会执行的代码都放在这里
}

3、对异常的处理方式:

  1. 立即处理: 产生异常后,给出提示或者处理其他逻辑使程序正常运行
  2. 抛出异常:对于复杂的程序,需要抛给上一层处理,也可以对异常进行封装后再抛出

二、程序中事务的一些使用介绍

在数据库端直接编写在存储过程内使用
1、为什么要使用事务: 执行多条增删改操作,保证要么都执行成功,要么都不执行

2、在程序端传输多条SQL语句的事务使用

两条一样的SQL语句:
 sqlList.Add("insert into Students(studentName, gender, birthday, age, studentidno, classid) values('山运维','男','1998-07-21',23,'852074196385201234',2)");
            sqlList.Add("insert into Students(studentName, gender, birthday, age, studentidno, classid) values('山运维','男','1998-07-21',23,'852074196385201234',2)");
运行结果:

其它异常信息:违反了 UNIQUE KEY 约束“uq_StudentIdNo”。不能在对象“dbo.Students”中插入重复键。重复键值为 (852074196385201234)。
语句已终止。            

执行成功的事务:要么都成功,要么都失败

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入操作数据库所需要的命名空间
using System.Data;
using System.Data.SqlClient;

namespace text2
{
    class Program
    {

        private static readonly string connString = @"Server=CHINA-20181227Q\server;DataBase=SMDB;User Id = sa; Password=123456";
        static void Main(string[] args)
        {
            InsertByTransaction();
            Console.ReadKey();
        }

        //通过传递SQL语句执行事务
        public static void InsertByTransaction()
        {
            List<string> sqlList = new List<string>();
            sqlList.Add("insert into Students(studentName, gender, birthday, age, studenti
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值