• .NET餐厅管理系统sql数据帮助类执行SQL返回DataTable数据集、使用事务执行多条SQL(插入、更新、删除)


     #region  //执行SQL返回DataTable数据集
        ///


        /// 执行SQL返回DataTable数据集
        ///

        ///
        ///
        public DataTable GetDataTable(string sql_)
        {
            if (sql_ == "")
                return null;
            DataTable dt = null;
            DataSet ds = null;
            try
            {
                OpenDb();
                SqlDataAdapter myad = new SqlDataAdapter(sql_, conn);
                ds = new DataSet();
                myad.Fill(ds);//用数据适配器填充数据集
                myad.Dispose();
                myad = null;
                CloseDb();

                if (ds.Tables.Count <= 0)
                    return null;
                dt = ds.Tables[0];
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString() + "  " + sql_);
            }
            return dt;
        }
        #endregion

        #region //使用事务执行多条SQL(插入、更新、删除)
        ///


        /// 使用事务执行多条SQL(插入、更新、删除)
        ///

        ///
        public bool ExecTansaction(List sqls)
        {
            if (sqls.Count == 0) return false;

            OpenDb();

            // 启动一个事务。 
            SqlTransaction myTran = conn.BeginTransaction();
            // 为事务创建一个命令
            SqlCommand myCom = new SqlCommand();
            myCom.Connection = conn;
            myCom.Transaction = myTran;
            try
            {
                foreach (string sql in sqls)
                {
                    myCom.CommandText = sql;
                    myCom.ExecuteNonQuery();
                }
                myTran.Commit();//提交事务
                return true;
            }
            catch (Exception Ex)
            {
                myTran.Rollback();

                //返回异常的错误信息 
                //MessageBox.Show("提交数据失败!\n" + ex.Message.ToString(), "异常信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                throw new Exception("提交数据失败!\n" + Ex.Message.ToString());
                return false;
            }
            finally
            {
                conn.Close();
            }
        }
        #endregion
     

  • 相关阅读:
    springboot使用redisTemplate操作lua脚本
    目标检测:Generalized Focal Loss(2020)
    汇编:怎么判断一个数是立即数
    算法通关村第12关【青铜】| 字符串转换问题
    华为机试真题 Python 实现【过滤组合字符串】【2022.11 Q4新题】
    nestjs封装一个响应体
    阿里35+老测试员生涯回顾,自动化测试真的有这么吃香吗?
    图论:自反与对称
    [Android] Amazon 的 android 音视频开发文档
    Erasure Code - EC纠删码原理
  • 原文地址:https://blog.csdn.net/m0_74456535/article/details/128023042