数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法
2008-04-28 15:30
288 查看
使用SQL语句来获取记录集的方法
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string sql = "select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取DataTable
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
DataTable dt = dal.RunSqlDataTable(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取DataSet
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql += " select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName2 where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql += " select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName3 where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
![](http://www.cnblogs.com/Images/dot.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
DataSet ds = dal.RunSqlDataSet(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//ds.Tables[0]; //TableName 的记录
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//ds.Tables[1]; //TableName2 的记录
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//ds.Tables[2]; //TableName3 的记录
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//只获取一条记录,记录保存到 string[] 里面
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName where ID = 1";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string[] values1 = dal.RunSqlStrings(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//只获取一条记录,记录保存到 DataRow 里面。可以通过字段名称来获取
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
DataRow dr = dal.RunSqlDataRow(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//只获取第一条记录的第一个字段的值
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1 from TableName where ID = 1";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select sum(col2) from TableName ";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string colValue = dal.RunSqlGetID(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取每一条记录的第一个字段的值。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1 from TableName where KindID = 1";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select sum(col2) from TableName group by KindID";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string[] values2 = dal.RunSqlStringsByRow(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//// 主要以DataTable 为数据载体。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 使用 DataTable 可以很方便的实现“通用”性,可以直接和许多控件绑定。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 使用 string[] 保存一条记录的数据,可以更轻量快捷的提取和保存数据。适用于字段比较少的情况。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 如果字段比较多可以使用 dal.RunSqlDataRow(sql); 的方式。
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
///
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
启用事务的方法
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//使用事务的实例
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//开始一个事务
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.TranBegin();
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//这时会open 一个连接。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.InsertDataStr("TableName1",str1,str); //添加数据
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (dal.ErrorMsg.Length > 2)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//出现异常,函数内部会自动回滚事务,并且关闭连接
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //终止程序,最好能够给出提示
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//判断是否正常执行,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (false) //没有正常执行,回滚事务
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
dal.TranRollBack(); //回滚事务,自动关闭连接 。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //不能继续向下执行!
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//执行下一个操作
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.UpdateData("TableName2",str1,str,"ID = 2 "); //修改数据
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (dal.ErrorMsg.Length > 2)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//出现异常,函数内部会自动回滚事务,并且关闭连接
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //终止程序,最好能够给出提示
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//判断是否正常执行,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (false) //没有正常执行,回滚事务
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
dal.TranRollBack(); //回滚事务,自动关闭连接 。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //不能继续向下执行!
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//其他操作。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//比如 : colValue = dal.RunSqlGetID(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.TranCommit(); //提交事务,自动关闭连接 。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//// 优点:在函数内部自动处理连接的打开和关闭的问题。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// sql语句出现错误的时候,会在/log/里面建立一个文本文件,记录出错的信息。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 可以通过查看这个文件,快速分析出来出错原因,在使用sql语句的情况下帮助很大。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 缺点:没有提供 DataReader 。
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
///
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string sql = "select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取DataTable
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
DataTable dt = dal.RunSqlDataTable(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取DataSet
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql += " select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName2 where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql += " select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName3 where
![](http://www.cnblogs.com/Images/dot.gif)
";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
![](http://www.cnblogs.com/Images/dot.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
DataSet ds = dal.RunSqlDataSet(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//ds.Tables[0]; //TableName 的记录
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//ds.Tables[1]; //TableName2 的记录
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//ds.Tables[2]; //TableName3 的记录
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//只获取一条记录,记录保存到 string[] 里面
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1,col2,col3
![](http://www.cnblogs.com/Images/dot.gif)
from TableName where ID = 1";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string[] values1 = dal.RunSqlStrings(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//只获取一条记录,记录保存到 DataRow 里面。可以通过字段名称来获取
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
DataRow dr = dal.RunSqlDataRow(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//只获取第一条记录的第一个字段的值
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1 from TableName where ID = 1";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select sum(col2) from TableName ";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string colValue = dal.RunSqlGetID(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取每一条记录的第一个字段的值。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select col1 from TableName where KindID = 1";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
sql = "select sum(col2) from TableName group by KindID";
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string[] values2 = dal.RunSqlStringsByRow(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//// 主要以DataTable 为数据载体。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 使用 DataTable 可以很方便的实现“通用”性,可以直接和许多控件绑定。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 使用 string[] 保存一条记录的数据,可以更轻量快捷的提取和保存数据。适用于字段比较少的情况。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 如果字段比较多可以使用 dal.RunSqlDataRow(sql); 的方式。
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
///
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
启用事务的方法
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//使用事务的实例
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//开始一个事务
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.TranBegin();
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//这时会open 一个连接。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.InsertDataStr("TableName1",str1,str); //添加数据
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (dal.ErrorMsg.Length > 2)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//出现异常,函数内部会自动回滚事务,并且关闭连接
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //终止程序,最好能够给出提示
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//判断是否正常执行,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (false) //没有正常执行,回滚事务
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
dal.TranRollBack(); //回滚事务,自动关闭连接 。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //不能继续向下执行!
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//执行下一个操作
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.UpdateData("TableName2",str1,str,"ID = 2 "); //修改数据
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (dal.ErrorMsg.Length > 2)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//出现异常,函数内部会自动回滚事务,并且关闭连接
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //终止程序,最好能够给出提示
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//判断是否正常执行,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if (false) //没有正常执行,回滚事务
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
dal.TranRollBack(); //回滚事务,自动关闭连接 。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return ; //不能继续向下执行!
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//其他操作。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//比如 : colValue = dal.RunSqlGetID(sql);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
dal.TranCommit(); //提交事务,自动关闭连接 。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//// 优点:在函数内部自动处理连接的打开和关闭的问题。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// sql语句出现错误的时候,会在/log/里面建立一个文本文件,记录出错的信息。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 可以通过查看这个文件,快速分析出来出错原因,在使用sql语句的情况下帮助很大。
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// 缺点:没有提供 DataReader 。
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
///
相关文章推荐
- 数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法
- 使用WindowsAPI获取录音音频的方法
- python使用wmi模块获取windows下硬盘信息的方法
- 使用js获取地址栏参数的方法推荐(超级简单)
- Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
- SQLServer事务获取表中自增ID的方法
- 文件属性获取及控件ListView使用常用方法
- 使用mat.at方法获取像素值
- 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍
- JQ使用陷阱,获取的元素要转成对象才可以使用JQ的方法
- java反射学习笔记(3)---使用Class来获取方法、成员变量、构造函数信息
- js使用html()或text()方法获取设置p标签的显示的值
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
- 使用jQuery方法获取当前日期和时间
- Ext.grid.EditorGridPanel的使用、修改记录的获取及提交方法
- 三种获取网页源码的方法(使用MFC/Socket实现)
- [开发笔记]-使用jquery获取url及url参数的方法
- 使用非ActiveX,获取客户端IP地址、MAC和主机名的方法
- Android开发中使用外部应用获取SD卡状态的方法