zoukankan      html  css  js  c++  java
  • 数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法


    使用SQL语句来获取记录集的方法
    string sql = "select col1,col2,col3  from TableName where ";
                
    //获取DataTable
                DataTable dt = dal.RunSqlDataTable(sql);

                
    //获取DataSet
                sql  =  "select col1,col2,col3  from TableName where ";
                sql 
    += " select col1,col2,col3  from TableName2 where ";
                sql 
    += " select col1,col2,col3  from TableName3 where ";
                
    //
                DataSet ds = dal.RunSqlDataSet(sql);
                
    //ds.Tables[0];    //TableName 的记录
                
    //ds.Tables[1];    //TableName2 的记录
                
    //ds.Tables[2];    //TableName3 的记录

                
    //只获取一条记录,记录保存到 string[] 里面
                sql  =  "select col1,col2,col3  from TableName where ID = 1";
                
    string[] values1 = dal.RunSqlStrings(sql);
                
                
    //只获取一条记录,记录保存到 DataRow 里面。可以通过字段名称来获取
                DataRow dr = dal.RunSqlDataRow(sql);

                
    //只获取第一条记录的第一个字段的值
                sql  =  "select col1 from TableName where ID = 1";
                sql  
    =  "select sum(col2) from TableName ";
                
    string colValue = dal.RunSqlGetID(sql);

                
    //获取每一条记录的第一个字段的值。
                sql  =  "select col1 from TableName where KindID = 1";
                sql  
    =  "select sum(col2) from TableName group by KindID";
                
    string[] values2 = dal.RunSqlStringsByRow(sql);

                
    /// 主要以DataTable 为数据载体。
                
    /// 使用 DataTable 可以很方便的实现“通用”性,可以直接和许多控件绑定。
                
    /// 使用 string[] 保存一条记录的数据,可以更轻量快捷的提取和保存数据。适用于字段比较少的情况。
                
    /// 如果字段比较多可以使用  dal.RunSqlDataRow(sql); 的方式。
                
    /// 



    启用事务的方法
    //使用事务的实例
                
    //开始一个事务
                dal.TranBegin();
                
    //这时会open 一个连接。

                dal.InsertDataStr(
    "TableName1",str1,str);    //添加数据

                
    if (dal.ErrorMsg.Length > 2)
                
    {
                    
    //出现异常,函数内部会自动回滚事务,并且关闭连接
                    return ;    //终止程序,最好能够给出提示
                }


                
    //判断是否正常执行,
                if (false)    //没有正常执行,回滚事务
                {
                    dal.TranRollBack();    
    //回滚事务,自动关闭连接 。
                    return ;            //不能继续向下执行!
                }


                
    //执行下一个操作
                dal.UpdateData("TableName2",str1,str,"ID = 2 ");    //修改数据
                if (dal.ErrorMsg.Length > 2)
                
    {
                    
    //出现异常,函数内部会自动回滚事务,并且关闭连接
                    return ;    //终止程序,最好能够给出提示
                }

                
    //判断是否正常执行,
                if (false)    //没有正常执行,回滚事务
                {
                    dal.TranRollBack();    
    //回滚事务,自动关闭连接 。
                    return ;            //不能继续向下执行!
                }


                
    //其他操作。

                
    //比如 : colValue = dal.RunSqlGetID(sql); 

                dal.TranCommit();    
    //提交事务,自动关闭连接 。


                
    /// 优点:在函数内部自动处理连接的打开和关闭的问题。
                
    /// sql语句出现错误的时候,会在/log/里面建立一个文本文件,记录出错的信息。
                
    /// 可以通过查看这个文件,快速分析出来出错原因,在使用sql语句的情况下帮助很大。
                
                
    /// 缺点:没有提供 DataReader 。
                
    /// 

  • 相关阅读:
    ProGuard代码混淆
    电影资源网站分享
    mvn高级构建
    BeanUtils对象属性copy的性能对比以及源码分析
    你可能用到的Spring工具类?
    搭建K8s集群
    IDEA部署Spring-boot到Docker容器
    搭建团队协作办公wiki (confluence)
    Linux中关闭SSH的DNS解析
    责任链异步处理设计模型
  • 原文地址:https://www.cnblogs.com/jyk/p/1174727.html
Copyright © 2011-2022 走看看