博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录一下WPF开发(二)--- access数据库DAL
阅读量:4029 次
发布时间:2019-05-24

本文共 3839 字,大约阅读时间需要 12 分钟。

直奔主题....

有时候桌面小程序用Access数据库是非常方便的,SQlHelper.cs如下

class SqlHelper    {        //获取数据库存放路径        private static string path = Environment.CurrentDirectory + "/DB/Pump.mdb";        private static String connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Jet OLEDB:Database Password=sql;";        ///         /// 执行增(insert)、删(delete)、改(update)的方法        ///         ///         ///         /// 
public static int ExecuteNonQuery(String sql, params OleDbParameter[] parameters) { using (OleDbConnection conn = new OleDbConnection(connStr)) { conn.Open(); using (OleDbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteNonQuery(); } } } /// /// 一般用来执行有且只有一行一列查询结果的sql语句 /// /// /// ///
public static object ExecuteScalar(String sql, params OleDbParameter[] parameters) { using (OleDbConnection conn = new OleDbConnection(connStr)) { conn.Open(); using (OleDbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteScalar(); } } } /// /// 用来执行多行多列的查询 /// /// /// ///
public static DataTable ExecuteDataSet(String sql, params OleDbParameter[] parameters) { using (OleDbConnection conn = new OleDbConnection(connStr)) { conn.Open(); using (OleDbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); return dataset.Tables[0]; } } } /// /// 将null类型转换成DBNull类型 /// /// ///
public static Object ToDBNull(Object value) { if (value == null) { return DBNull.Value; } else { return value; } } /// /// 将DBNull类型转换成null类型 /// /// ///
public static Object ToNull(Object value) { if (value == DBNull.Value) { return null; } else { return value; } } public static OleDbParameter SetParameter(String key, object value) { //return new OleDbParameter(key, ToDBNull(value)); if (value is DateTime?) { OleDbParameter time = new OleDbParameter(key, OleDbType.Date); time.Value = ToDBNull(value); return time; } else { return new OleDbParameter(key, ToDBNull(value)); } } }
DAL接口

#region DAL 父类提供上层操作    class BaseDAL    {        public void Delete(String tablename,  Int32? id)        {            String sql = @"delete from [" + tablename + "] where Id = @id" ;                        SqlHelper.ExecuteNonQuery(sql,SqlHelper.SetParameter("@id", id));                            }        public virtual int Save(Object entity) { return 0; }        public virtual int Update(Object entity) { return 0; }        public virtual void SetValue(DataRow row, Object o) { }            }    #endregion
具体实现DAL继承该基类即可实现简单事物操作。

转载地址:http://urlbi.baihongyu.com/

你可能感兴趣的文章
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>