首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法

数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法

作者头像
用户1174620
发布于 2018-02-08 08:08:40
发布于 2018-02-08 08:08:40
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

使用SQL语句来获取记录集的方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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); 的方式。

            ///

启用事务的方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//使用事务的实例

            //开始一个事务

            dal.TranBegin();

            //这时会open 一个连接。



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



            if (dal.ErrorMsg.Length > )

            {

                //出现异常,函数内部会自动回滚事务,并且关闭连接

                return ;    //终止程序,最好能够给出提示

            }



            //判断是否正常执行,

            if (false)    //没有正常执行,回滚事务

            {

                dal.TranRollBack();    //回滚事务,自动关闭连接 。

                return ;            //不能继续向下执行!

            }



            //执行下一个操作

            dal.UpdateData("TableName2",str1,str,"ID = 2 ");    //修改数据

            if (dal.ErrorMsg.Length > )

            {

                //出现异常,函数内部会自动回滚事务,并且关闭连接

                return ;    //终止程序,最好能够给出提示

            }

            //判断是否正常执行,

            if (false)    //没有正常执行,回滚事务

            {

                dal.TranRollBack();    //回滚事务,自动关闭连接 。

                return ;            //不能继续向下执行!

            }



            //其他操作。



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



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





            /// 优点:在函数内部自动处理连接的打开和关闭的问题。

            /// sql语句出现错误的时候,会在/log/里面建立一个文本文件,记录出错的信息。

            /// 可以通过查看这个文件,快速分析出来出错原因,在使用sql语句的情况下帮助很大。

            

            /// 缺点:没有提供 DataReader 。

            ///
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2008-04-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据访问层的使用方法
数据访问层的使用方法。 数据访问层的使用方法 一、操作语句部分 简单的说就是传入一个操作语句,然后接收返回值就可以了。为了简化代码和提高效率,所以呢设置了五种返回类型。 1、 DataSet 函数名称:DateSet ds = RunSqlDataSet(查询语句) 传入一个查询语句(多条select 的查询语句),然后接收返回值就可以了。 没有记录返回 null 2、 DataTable 函数名称:DateTable dt = RunSqlDataTable(查询语句) 传入一个查询语句(一条selec
用户1174620
2018/02/07
1.8K0
我的数据访问函数库的源代码(二)—— SQL语句部分
/* 2008 4 25 更新 */ 我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。 第二部分:SQL语句部分。 传入SQL语句,执行相关的操作。 //查询语句部分         #region 运行查询语句返回记录(DataSet、DataTable、DataRow、String[]、String)              /// <summary>         /// 运行SQL查询语句 返回DataSet。可以传入多条查询语句,返回
用户1174620
2018/02/07
1.6K0
我的数据访问类(第二版)—— for .net2.0 (二)
下面写一下相对来说不变的地方 SQL语句部分,改成了静态函数的形式。 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Data.SqlClient; using JYK; namespace JYK.DataAccessLibrary {     //DataAccessLibrary 数据访问库    
用户1174620
2018/02/07
1.1K0
代码生成器原理及示例
在三层架构中Model、DAL(Data Access Layer)、BLL层有必要分开,其中有些代码可以由代码生成器生成。虽然网络已经有成熟的代码生成器,但是第三方代码生成器在实际应用场景中,生成的代码经常还需要在其基础上修改。修改其代码就不如修改代码生成器本身。所以掌握代码生成器的编写方法、原理还是很有必要的。
全栈程序员站长
2022/07/25
1.1K0
代码生成器原理及示例
分页解决方案 之 数据访问函数库——另类的思路、另类的写法,造就了不一样的发展道路。
    如何访问数据库?一个老掉牙的问题,方法多了去了,什么直接使用ado.net、使用SQLHelp、使用微软的企业库、使用ORM、使用LinQ to SQL等等,还可以使用自己封装的函数库,这里我就想说一下我的数据访问函数库的使用方法。     您可能会说了,这么简单的东东还用说吗,重复制作轮子有意义吗?这个嘛,个人有个人的看法了,我也不多说了,先看使用方法吧。      忘记说了,我的数据访问函数库不是静态的,所以需要先实例化。 DataAccessLibrary dal = DALFactory.C
用户1174620
2018/02/26
7390
分页解决方案 之 数据访问函数库——另类的思路、另类的写法,造就了不一样的发展道路。
我的数据访问函数库的源代码(一)—— 共用部分
/* 2008 4 25 更新 */ 我的数据访问函数库的源码。整个类有1400多行,原先就是分开来写的,现在更新后还是分开来发一下吧。 第一部分:内部成员,初始化设置等。 using System; using System.Data; using System.Data.SqlClient; using HBS.DataStruct; using HBS.Form; //using System.Security.Principal; namespace HBS {     
用户1174620
2018/02/07
8990
数据访问函数库的使用方法(一)——添加修改数据
由于这个类库是需要实例化的,如果每一次都要实例化,然后用完了在销毁,无形中就多了不少的代码,而且很容易忘记销毁实例。 同时在用户的一次访问的过程中不断地实例化、销毁,也是比较浪费资源的。 所以我建立了一个基类,在基类里面同意获得实例、统一销毁实例,这样在编码的时候就不用考虑有没有实例化,也不用担心是否销毁实例了, 另外用起来(使用方式)也和静态类的使用方式很像了。 基类里的代码: (ps:我习惯在.aspx.cs里面直接调用 数据访问函数库,所以这个基类是继承System.Web.UI.Page
用户1174620
2018/02/08
8990
数据访问函数库 for ado.net2.0
前言 源代码和调用演示下载:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html 数据访问函数库for ado.net 1.1 的说明:http://www.cnblogs.com/jyk/category/67121.html     由于一直在使用vs2003开发,所以自己使用的数据访问函数库(以下简称:访问库)也就一直没有能够考虑到ado.net2.0。虽然ado.net2.0在调用的时候没有什么变化,但是内部结构却发生了不小的变化
用户1174620
2018/02/08
5730
数据访问函数库 for ado.net2.0
unity连接mysql数据库-最新详细
版本兼容问题走了许多弯路,令人非常火大。软件的更新,但是配套和支持往往没有跟上,甚至反而不兼容旧版本,而网上多数博客已经不再适用,故执笔记录,希望可以帮助到你。
唔仄lo咚锵
2022/05/10
2.5K0
unity连接mysql数据库-最新详细
将Excel文件数据库导入SQL Server
将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server
Java架构师必看
2021/03/22
2.8K0
MySQL的DataAdapter用法
CBeann
2023/12/25
4820
MySQL的DataAdapter用法
.NET程序设计复习总结
没有两三天.NET就要考试了,按照考试大纲自己梳理一遍( 临时抱佛脚 ) 有些知识点大纲不考就没总结,面向考试编程
唔仄lo咚锵
2020/09/15
1.5K0
MySQL锁等待与死锁问题分析
在 MySQL 运维过程中,锁等待和死锁问题是令各位 DBA 及开发同学非常头痛的事。出现此类问题会造成业务回滚、卡顿等故障,特别是业务繁忙的系统,出现死锁问题后影响会更严重。本篇文章我们一起来学习下什么是锁等待及死锁,出现此类问题又应该如何分析处理呢?
MySQL技术
2021/04/13
2.2K3
关于asp.net与winform导出excel的代码
一、asp.net中导出Execl的方法: 在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器。在Response输出时,t分隔的数据,导出execl时,等价于分列,n等价于换行。 1、将整个html全部输出execl 此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中。
跟着阿笨一起玩NET
2018/09/19
5.9K0
浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/39450171
DannyHoo
2018/09/13
1.4K0
浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable
分页解决方案 之 分页算法——Pager_SQL的详细使用方法和注意事项
      上一次有点匆忙,如何使用介绍的不是太清楚,而且这两天有改掉了几个bug,所以这次呢详细说一下,然后更新一下代码和demo。       源代码和demo的下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html JYK.Controls.Pager.QuickPagerSQL PagerSQL = new QuickPagerSQL();             //设置保存属性的位置。可以不保存,也可以保存在隐藏域、Cook
用户1174620
2018/02/26
9420
C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:
代码伴一生
2021/09/22
2.6K0
C#二十七 Dataset和DataAdapter
DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使DataSet中数据的更改与数据源保持一致。
张哥编程
2024/12/13
4570
C#二十七 Dataset和DataAdapter
MySql性能测试
相信很多做性能测试的朋友都知道,性能测试并不单单只是看服务器cpu、IO、内存、网络等,我们还需要了解Mysql性能,那么我们看看Mysql性能主要内容有哪些呢?
全栈程序员站长
2021/05/27
2.2K0
一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)
在本系列第一篇《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)》中,我为大家介绍了搭建空白解决方案以及在此解决方案中创建目录和对应的项目。本篇将和大家一起学习在项目中使用Nuget引入.NET对应的MySql.Data程序包,以及使用传统的Ado.NET连接MySQL数据库,实现一个简单的查询并将数据转换成泛型对象的操作。
Rector
2018/01/29
2.6K0
推荐阅读
相关推荐
数据访问层的使用方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档