轻松实现C#对Access数据库进行集成管理
2008-06-22 16:12
375 查看
using System; using System.Data; using System.Data.OleDb; public class DataManager : WorkSystem.DisposeBase { /*================================================== Code By Icyplayer E-Mail:Icyplayer@126.com 请尊重原创,使用请保留此信息 ====================================================*/ /// <summary> /// /// 该类实现了操作Access数据库的功能 /// /// 功能1:所有结果以DataTable形式返回 /// 功能2:返回的DataTable可以进行修改再更新到数据库中 /// 功能3:提供记录插入功能,方便使用 /// /// 注意:进入修改模式时,在没有进行update操作之前, /// 再次进入修改模式将覆盖上次的修改记录信息。 /// /// example1: /// DataManager dm; /// dm = new DataManager("c://db1.mdb"); /// dm.Open(); /// DataTable dt = new DataTable(); /// dt = dm.Select("select * from [news]"); /// example2: /// DataManager dm; /// dm.Open("c://db1.mdb"); /// dt = dm.SelectWithUpdate("select * from [users]"); /// //此时可修改dt的数据 /// dm.Update(dt); ///example3: /// DataManager dm; /// dm.DataSource = "c://db1.mdb"; /// dm.Open(); /// dt = dm.InsertMode("table1"); /// //此时dt具备了table1的结构,可以插入数据 /// dm.Update(dt); /// </summary> string _dbscr = "";//access数据库文件 System.Data.OleDb.OleDbConnection _conn; //access数据库连接 System.Data.OleDb.OleDbDataAdapter _dap;//当有更新操作时,用来保存数据信息 System.Data.OleDb.OleDbCommandBuilder _cmdb;//当有更新操作时,配合OleDbDataAdapter使用 //构造函数,不指定任何数据 public DataManager() { Open(Gproc.DataSource); } //构造函数,指定access数据库文件 public DataManager(string DataSource) { Open(DataSource); } ~DataManager() { Close(); GC.Collect(); } //获取或指定access数据库文件 public string DataSource { get { return _dbscr; } set { _dbscr = value; } } //打开指定数据库文件 public void Open(string DataSource) { _dbscr = DataSource; Open(); } //打开已经设定好的数据库文件 public void Open() { _conn = new OleDbConnection(); string connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + _dbscr; _conn.ConnectionString = connstr; _conn.Open(); } //进入修改模式 //执行SQL语句,将响应的数据填充到DataTable中 //用户可修改数据后再调用Update(DataTable)进行更新操作 public System.Data.DataTable SelectWithUpdate(string SQLCmd) { System.Data.DataTable dt = new DataTable(); _dap = new OleDbDataAdapter(SQLCmd,_conn); _cmdb = new OleDbCommandBuilder(_dap); _dap.Fill(dt); return dt; } //进入修改模式 //输入需要操作的表名,返回表结构的DataTable //用户添加数据后再调用Update(DataTable)进行更新操作 public System.Data.DataTable InsertMode(string TableName) { System.Data.DataTable dt = new DataTable(); _dap = new OleDbDataAdapter("select * from " + TableName + "where false",_conn); _cmdb = new OleDbCommandBuilder(_dap); _dap.Fill(dt); return dt; } //关闭修改模式 //根据DataTable进行更新操作 public bool Update(System.Data.DataTable DataTableSource) { _dap.Update(DataTableSource); _dap.Dispose(); _dap = null; _cmdb.Dispose(); _cmdb = null; return true; } //执行SQL语句,将响应的数据填充到DataTable中,不能进行更新操作 public System.Data.DataTable Select(string SQLCmd) { System.Data.OleDb.OleDbDataAdapter da; System.Data.DataTable dt = new DataTable(); da = new OleDbDataAdapter(SQLCmd,_conn); da.Fill(dt); da.Dispose(); return dt; } //执行删除操作的SQL语句 public bool Delete(string SQLCmd) { System.Data.OleDb.OleDbCommand cmd; cmd = new OleDbCommand(SQLCmd,_conn); cmd.ExecuteNonQuery(); return true; } //关闭sql连接 public void Close() { try { _dap = null; _cmdb = null; _conn.Close(); _conn.Dispose(); _conn = null; } catch { } } protected override void Dispose(bool disposing) { Close(); base.Dispose(disposing); GC.Collect(); } }
相关文章推荐
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享
- 黑马程序员 C#学习笔记⑥ 三层架构基础实现员工信息管理
- C# 中WinForm 应用程序实现远程文件管理(上传、下载)的种种问题——远程服务器返回错误
- C#中在控件中画图并用TIMER控件进行控制方法的实现
- elasticsearch+logstash+kibana5.5.2集成searchguard实现用户权限管理(一)
- 只上传APK而不进行反编译,在服务器集成第三方SDK。是如何实现的
- C#编程技巧,轻松实现对文件操作
- C#多线程学习之(五)使用定时器进行多线程的自动管理
- Android 注解实现权限管理 APP不再对onRequestPermissionsResult进行操作
- 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
- 轻松实现Java与C#时间转换
- C#进行Visio二次开发之动态仿真实现
- C# winform实现一个服务端和多个客户端进行通信
- C#.NET 通用权限管理系统中的数据集权限设置实现参考界面(商业化成熟权限管理系统,提供全部源码)
- 最近需要使用jenkins 进行项目集成管理——1
- 使用ActiveMQ进行C++与C#的通信5 - 实现C++和C#的通信
- C#.NET 权限管理系统组件 - 大数据读写分离实现的例子
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 访问频率限制功能实现、防止黑客扫描、防止恶意刷屏
- 使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成--指定具体项目和分支进行集成
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 独立子系统管理员功能实现