当前位置: 传客网 > c#OleDbHelper类的实现方法

c#OleDbHelper类的实现方法

2016-12-10 作者:charley喜欢甜

一直以来用的是SqlDbhelper,这几天刚好要用到访问Access数据库.OleDbHelper就在原有的SqlDbhelper的基础上进行了改进了一下.当然大家可以去把功能实现更强大一点.

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Configuration;

namespace OleDbHelper
{
    public static class OleDbHelper
    {
        private static OleDbConnection connection;
        /// <summary>
        /// 获得一个唯一的CONNECTION 实例
        /// </summary>
        public static OleDbConnection Connection
        {

            get
            {
                string connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source=db.mdb;";
               
                if (connection == null)
                {
                    connection = new OleDbConnection(connectionstring);
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Closed)
                {

                    connection.Open();


                }
                else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }

        }
        /// <summary>
        /// 返回执行SQL 语句所影响数据的行数
        /// </summary>
        /// <param name="sql">sql 语句</param>
        /// <returns>影响行数</returns>
        public static int ExecuteCommand(string sql)
        {
            OleDbCommand com = new OleDbCommand(sql, Connection);
            int result = com.ExecuteNonQuery();
            return result;
        }
        /// <summary>
        /// 获取结果集的第一行第一列
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int GetScalar(string sql)
        {
            OleDbCommand com = new OleDbCommand(sql, Connection);
            int result = int.Parse(com.ExecuteScalar().ToString());
            return result;

        }
        /// <summary>
        ///  执行Sql语句,获取DataTable结果集
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>DataTable</returns>
        public static DataTable GetDataTable(string sql)
        {
            DataSet dataset = new DataSet();
            OleDbCommand com = new OleDbCommand(sql, Connection);
            OleDbDataAdapter da = new OleDbDataAdapter(com);
            da.Fill(dataset);
            return dataset.Tables[0];
        }
        /// <summary>
        /// 执行Sql语句,获取DataSet结果集
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>DataSet</returns>
        public static DataSet GetDataSet(string sql)
        {
            DataSet dataset = new DataSet();
            OleDbCommand com = new OleDbCommand(sql, Connection);
            OleDbDataAdapter da = new OleDbDataAdapter(com);
            da.Fill(dataset);
            return dataset;
        }
        /// <summary>
        /// 获取OleDbDataReader结果集
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>OleDbDataReader</returns>
        public static OleDbDataReader GetReader(string sql)
        {
            OleDbCommand com = new OleDbCommand(sql, Connection);
            OleDbDataReader reader = com.ExecuteReader();
            return reader;
        }
        /// <summary>
        /// 执行SQL语句
        /// </summary>
        /// <param name="SQLString">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns>影响行数</returns>
        public static int ExecuteSql(string SQLString, params OleDbParameter[] cmdParms)
        {
            OleDbCommand com = new OleDbCommand(SQLString, Connection);
            PrepareCommand(com, Connection, null, SQLString, cmdParms);
            int rows = com.ExecuteNonQuery();
            com.Parameters.Clear();
            return rows;
        }
        /// <summary>
        /// 获取DataSet结果集
        /// </summary>
        /// <param name="SQLString">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns>DataSet</returns>
        public static DataSet GetDataSet(string SQLString, params OleDbParameter[] cmdParms)
        {
            OleDbCommand cmd = new OleDbCommand(SQLString, Connection);
            PrepareCommand(cmd, Connection, null, SQLString, cmdParms);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            DataSet ds = new DataSet();
            try
            {
                if (connection.State == ConnectionState.Closed)
                    connection.Open();
                da.Fill(ds, "ds");
                cmd.Parameters.Clear();
            }
            catch
            {
              
            }
            finally
            {
             
            }
            return ds;
        }
        private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, string cmdText, OleDbParameter[] cmdParms)
        {
            cmd.CommandText = cmdText;
            cmd.Connection = conn;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (OleDbParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        }
    }
}



相关推荐

  • 用iframe的方法实现跨域调用方法

    不跨域的情况下:使用iframe框,子页面调用父页面方法,或者传递对象,可以用如下方式parent.window.function(param)(子传父函数对象即可实现,对象param可以在子页面赋值)跨域的情况下:必须使用第三者为第一个域

  • 多种方法实现虚拟主机301重定向

    下文中中国信息港总结了多种方法实现虚拟主机301重定向,希望有一个可以适合你的主机。【问题如下】1、301重定向的作用?2、URL转发的原理?3、windows和linux主机如何实现301重定向?4、asp、php和net主机如何实现30

  • [原]iOS自定义多参数类型方法[UIAlertView 方法实现]

    [原]iOS自定义多参数类型方法2015-4-1阅读135评论0前几天做自定义UIAlertView的时候,想仿造系统自带的初始化方法做一个AlertView,里面涉及到不确定多参数的设置和使用问题。这里做一下记录。我自定义了一个方法:-(

  • 四种方法实现文档双面打印

      在日常办公中要求对文档进行双面打印是很常见的,在打印机没有自带双面打印功能的情况下,如何既节约人力成本,又能快速实现双面打印呢?具体情况具体分析,一起看看在下面四种情况下的双面打印法。  一、在Word2007中快速实现双面打印  Wo

  • jQuery load() 方法实现加载远程数据

    JQueryload()方法是简单但强大的AJAX方法。load()方法从服务器加载数据,并把返回的数据放入被选元素中。语法:$(selector).load(URL,data,callback);必需的URL参数规定您希望加载的URL。可

  • C语言递归方法实现斐波那契数列

    本文介绍面试题经典试题之一:C语言用递归方法实现斐波那契数列(从第三个数起,后一个数等于前面两个数之和):1、1、2、3、5、8、13、21、34.........#includelongintfun(intn){if(n==1||n==2

  • 总结ps彩色变黑白的多种方法实现把彩色变黑白图像

    黑白照片有它独特的魅力,黑白照片所带来的影调、层次以及让人玩味的情趣是彩色相片无法取代的,黑白照片更能带来震撼和深层次的东西。  ps彩色变黑白图像的方法,在以前的文章曾经介绍过四种方法,通过执行“图像——调整——去色、黑白、色相/饱和度”

  • java编程:三种方法实现斐波那契数列

    题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行方法一:publicclassFibonacci1{//定义三个变量方法publicstaticvoidmain(String[]args){inta=1,b=1,c=0;

  • Delphi与FORTRAN语言混合编程,不同方法实现混合编程

     Delphi与FORTRAN语言的混合编程:    众所周知,FORTRAN强于数值计算,尤其是如果计算主要针对复数进行,则FORTRAN更有无可比拟的优势。FORTRAN是所有语言中唯一将复数定义为一种标准数据类型的语言。      但

  • android中SQLite的使用总结,用excSQL和rawQuery方法实现一般得增删改查

    1:androidmanifest.xml的内容<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/

  • 安卓代码混淆方法实现

    注:Android反编译文件proguard.cfg,是第一代的混淆文件,在project.properties文件中把这#proguard.config=${sdk.dir}/tools/proguard/proguard-android

  • C# MDI编程中父窗体获取子窗体的值的一个实现方法

    在C#MDI编程中,父窗体如何获取子窗体的值?这里有一个实现方法。在父窗体定义可外部访问的静态就是值,用循环的方法去读取已定义的静态就是值,当子窗体更新这些已定义的静态变量值,父窗体就能立即获取更新值。下面以示例来说明具体的实现过程。有两个

  • 浅议内滚动布局的概念与实现方法

    浅议内滚动布局的概念与实现方法本文来聊聊可能成为未来流行趋势的内滚动布局,从基础介绍、实现方法到几个关键问题都有细致的教程。一、什么是内滚动布局?所谓“内滚动布局”,顾名思义就是主滚动条在页面内部的布局,是相对于传统的滚动而言的,例如,下图

  • 织梦dedecms 5.7按照字母搜索的实现方法

    目前织梦dedecmsv5.7已正式发布,但在实际的使用环境中往往我们需要进行一些特定功能的实现,比如按照字母搜索等,下面我们来说一下该功能是如何实现的,主要的方法就是提取发布资源中第一个字母,存储到数据表中,然后进行索引。DedeCMS基

  • 黑马程序员  1_15、【掌握】有参方法的声明实现及调用

    黑马程序员1_15、【掌握】有参方法的声明实现及调用------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------本小节知识点:1、【掌握】有参方法声明和实现2、【掌握】方法的调用1、有参方法声明实现及

  • 黑马程序员  1_14、【掌握】无参方法的声明实现及调用

    黑马程序员1_14、【掌握】无参方法的声明实现及调用------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------本小节知识点:1、【掌握】无参方法声明和实现2、【掌握】方法的调用1、无参方法声明实现及

  • 单片机课程设计--键盘及LED驱动实验-ARM汇编语言实现方法

    键盘及LED驱动实验-ARM汇编语言实现方法实验报告实验目的进一步熟悉ARM汇编指令,学习查表的方法,掌握宏的使用方法。实验内容通过zlg7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。实验原理实验原理及zlg7

  • 【动力节点java培训】java中有几种方法可以实现一个线程?

    【动力节点java培训】java中有几种方法可以实现一个线程?有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,

  • 本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法。分享给大家供大家参考。具体实现方法如下

     http://www.jb51.net/article/60756.htm本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法。分享给大家供大家参考。具体实现方法如下:第一种方法:大致方法就是,从数据库中读出Blob

  • Java中各类Cache机制实现方法

    Java中各类Cache机制实现方法:在Java中,不同的类都有自己单独的Cache机制,实现的方法也可能有所不同,文章列举了Java中常见的各类Cache机制的实现方法,同时进行了综合的比较。OSCacheOSCache是个一个广泛采用的

返回
顶部