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

 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. C语言_double_精度的谜团

    double-long long 和0的比较,double和double之间比较

  2. append, appendTo, after区别(preappend、before与这几个原理相同)

    append在被选元素结尾插入内容,是被包围在所选元素的标签内的. <script> $('p').append('<a>http</a>'); </scri ...

  3. js数组(二)

    一.位置方法 indexOf()和laseIndexOf() indexOf是从数组的第0项开始向后查找,没有找到返回-1,要求使用=== var numbers = [1,2,3,4,5,4,3,2 ...

  4. python基础(四)

    内置函数 callable() #判断是否能够被调用执行,可以调用返回True,例如函数和类 chr() #将ascii值转换为字符,例如print(chr(65) )输出为a ord()#将字符转换 ...

  5. Python学习路径和个人增值(整合版)

    PS:内容来源于网络 一.简介         Python是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum于1989年底发明.由于他简单.易学.免费开源.可移植性.可扩展 ...

  6. Linux系统针对网卡中断的优化处理

    摘要: 中断: 当网卡接收到数据包后,会触发硬中断,通知CPU来收包.硬中断是一个CPU和网卡交互的过程.这其实会消耗CPU资源.特别是在使用速度极快的万兆网卡 之后,大量的网络交互使得CPU很大一部 ...

  7. 自制DTU

        最近打算自己做一款工业级DTU产品,预计到今年年底前完成,博客会随时更新产品进度,有兴趣的朋友可以联系我.

  8. 【自学php】第二天 - php快速入门

    打算看<php和mysql web开发>来学习php,所以也算是这本书的学习笔记吧,也按照书里的例子来练习,但是也有些取舍.第一章是一个订单表单的例子,php用于处理提交的表单. 1.先创 ...

  9. css案例学习之父子块的margin

    两边还会有些距离,这是body默认的. 代码: <head> <title>父子块的margin</title> <style type="text ...

  10. java实现xml文件增删改查

    java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...