第二版的数据库访问类出炉了:

 C# Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
public class OledbDataService1:IDisposable
    {
        public OledbDataService1(string conStr)
        {
            ConnectionString = conStr;
        }
        //[关闭]
        public void Close()
        {
            if (_Command != null)
            {
                if (_Command.Connection.State != ConnectionState.Closed)
                    _Command.Connection.Close();
            }
        }
        public void Dispose()
        {
            Close();
            if (_Command != null)
            {
                _Command.Connection.Dispose();
                _Command.Dispose();
            }
        }
        //连接字符串
        public string ConnectionString
        {
            get;
            private set;
        }
        //sql执行器
        private OleDbCommand _Command;
        public OleDbCommand Command
        {
            get
            {
                if (_Command == null)
                {
                    _Command = new OleDbConnection(ConnectionString).CreateCommand();
                }
                return _Command;
            }
        }
        //数据库适配器
        private OleDbDataAdapter _Adapter;
        public OleDbDataAdapter Adapter
        {
            get
            {
                if (_Adapter == null)
                {
                    _Adapter = new OleDbDataAdapter(Command);
                }
                return _Adapter;
            }
        }
        //得到查询结果
        public DataTable Execute(string sql)
        {
            Command.CommandText = sql;
            DataTable db = new DataTable();
            Adapter.Fill(db);
            return db;
        }
        //检查Connection打开状态
        protected void CheckConnectionState()
        {
            if (Command.Connection.State != ConnectionState.Open)
                Command.Connection.Open();
        }
    }

调用方法如下:

 C# Code 
1
2
3
4
5
6
 
using (var db = Common.GetDataServicetest("AccessConStr", "dbPath"))
{
    string sql = "Select top 1 Dept_No from Dept_No";
    DataTable dt = db.Execute(sql);
    Console.WriteLine(]);
}

通过实现IDisposale接口可以手动调用资源清理方法来进行资源回收,using(...){...}using关键字在C#中主要有几个用途:

  1.引用命名空间,以减少输入

  2.为命名空间创建别名

  3.用于在限定范围结束后自动释放资源,如自动释放数据连接、事务句柄等

因此在执行完数据操作后,可以自动释放数据库。同时可以在一次数据库的操作中多次执行操作,避免重复打开数据库连接的消耗。

asp.net数据库操作类(二)的更多相关文章

  1. asp.net数据库操作类(一)

    Hi Boy, 我现在需要使用asp.net操作access数据库,你来做个.boy听后就开始百度了,最后找到了一个比较好的方法.如下:  C# Code  1234567   <appSett ...

  2. 自己封装的ASP.NET的MYSQL的数据库操作类

    /** * 作者:牛腩 * 创建时间:2010年3月7日17时35分 * 类说明:对MYSQL数据库的操作类 */ using System; using System.Data; using MyS ...

  3. PHP 数据库操作类:ezSQL

    EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...

  4. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  5. PDO数据库操作类

    <?php include 'common_config.php'; /** * Class Mysql * PDO数据库操作类 */ class Mysql { protected stati ...

  6. MySQL数据库操作类(PHP实现,支持连贯操作)

    <?php /** * Author: suvan * CreateTime: 2018/2/27 * description: 数据库操作类(仅对接MySQL数据库,主要利用MySQLi函数) ...

  7. 数据库操作类《SqlHelper》

    一.背景 在看了一本书叫<Visual Studio 2010(C#)Windows数据库项目开发>后,觉得很多编程技术需要积累,因为一个简单的项目里包含的技术太多了,容易忘记.每次需要用 ...

  8. 扣出thinkphp数据库操作类

    假如你是一位thinkphp的使用者,想必你会觉得thinkphp操作数据库非常方便.现在在你面前有一个非常小的作业,小到完全没有必要用thinkphp去完成它.但是你又觉得不用thinkphp的话, ...

  9. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

随机推荐

  1. GetRect:通过提供点和宽度返回对应矩形RECT

    RECT GetRect(int x,int y,int width,int height); 描述:通过提供点和宽度返回对应矩形RECT 返回:矩形结构RECT 参数: x:X轴坐标 y:Y轴坐标 ...

  2. getgrgid()函数

    getgrgid(从组文件中取得指定gid 的数据)相关函数 fgetgrent,getgrent,getgrnam表头文件 #include<grp.h>#include<sys/ ...

  3. Scala入门指南与建议

    最近在学习使用Scala语言做项目,感觉这门语言实在是太优美了!作为一个本科数学.研究生机器学习专业的混合人才(哈哈),这门语言真的是满足了普通计算机编程(告诉计算机怎么做)和函数式编程(告诉计算机做 ...

  4. python学习笔记:python数字

    一.数字类型分类 数字提供了标量存储和直接访问,它是不可更改类型,也就是说变更数字的值会产生新的对象.python的对象模型与常规对象模型有些不同,对数字对象的更新,实际上是生成了一个新的数值对象,并 ...

  5. Linux 计算某文件夹下的所有文件的md5值

    使用find 命令 find /root -type f -print0 |xargs -0 md5sum >a.md5 校验的话 md5sum -c a.md5

  6. jcSQL词法分析器对字符串token的解析

    上星期写完词法分析器的时候,曾遇上一个无关紧要却X疼的问题.毕竟是第一次完整地写整个语言的编译器(暂且这么叫着吧,解释器更靠谱),由于经验不足,在字符串解析这一块驻足了两天才解决掉,这里记录下来供以后 ...

  7. Prisma

    AI修图艺术:Prisma背后的奇妙算法 | 深度 投递人 itwriter 发布于 2016-07-30 12:47 评论(2) 有712人阅读 原文链接 [收藏] « » 雷锋网按:本文作者系图普 ...

  8. Delphi 取外网IP

    近日偶要做个程序,需要获得外网IP,偶去网上找相关资料,发现都不尽如人意,有的只能获得本地网卡的IP,有的通过httpget控件获取IP,还有甚者做个asp再调用偶是个懒人,而且上面提到的方法,不是获 ...

  9. 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域

    这是两个相关的程序,前者是后者的基础.实际上前一个程序也是在前面博文的基础上做的修改,请参考<在OpenCV中利用鼠标绘制直线> .下面贴出代码. 程序之一,在OpenCV中利用鼠标绘制矩 ...

  10. asp.net多图片上传同时保存对每张图片的描述

    前台aspx //图片预览和描述 function previewImage(file) { var div = document.getElementById('preview'); div.inn ...