代码改变世界
2008-04-28 15:44
金色海洋(jyk)
阅读(1100)
评论()
编辑
收藏
举报
使用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 。
///
2
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!