前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法

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

作者头像
用户1174620
发布2018-02-08 16:08:40
1K0
发布2018-02-08 16:08:40
举报
文章被收录于专栏:更流畅、简洁的软件开发方式

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

代码语言:javascript
复制
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
复制
//使用事务的实例

            //开始一个事务

            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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档