zoukankan      html  css  js  c++  java
  • C# 对Access数据库操作的通用类

    (转载自博主Jerry很简单

    //Access数据库-C# 操作类 代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;

    namespace XXX
    {
        class AccessHelper
        {

    private string conn_str = null;
    private OleDbConnection ole_connection = null;
    private OleDbCommand ole_command = null;
    private OleDbDataReader ole_reader = null;
    private DataTable dt = null;

    /// <summary>
    /// 构造函数
    /// </summary>
    public AccessHelper()
    {
    conn_str =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\我的文档\Visual Studio 2008\Projects\AccessOperator\AccessOperator\bin\Debug\myDb.mdb'";
    InitDB();
    }

    private void InitDB()
    {
    ole_connection =new OleDbConnection(conn_str);//创建实例
    ole_command =new OleDbCommand();
    }

    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="db_path">数据库路径</param>
    public AccessHelper(string db_path)
    {
    conn_str ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"+ db_path + "'";
    InitDB();
    }

    /// <summary>
    /// 转换数据格式
    /// </summary>
    /// <param name="reader">数据源</param>
    /// <returns>数据列表</returns>
    private DataTable ConvertOleDbReaderToDataTable(ref OleDbDataReader reader)
    {
    DataTable dt_tmp =null;
    DataRow dr =null;
    int data_column_count = 0;
    int i = 0;

    data_column_count = reader.FieldCount;
    dt_tmp = BuildAndInitDataTable(data_column_count);

    if(dt_tmp == null)
    {
    return null;
    }

    while(reader.Read())
    {
    dr = dt_tmp.NewRow();

    for(i = 0; i < data_column_count; ++i)
    {
    dr[i] = reader[i];
    }

    dt_tmp.Rows.Add(dr);
    }

    return dt_tmp;
    }

    /// <summary>
    /// 创建并初始化数据列表
    /// </summary>
    /// <param name="Field_Count">列的个数</param>
    /// <returns>数据列表</returns>
    private DataTable BuildAndInitDataTable(int Field_Count)
    {
    DataTable dt_tmp =null;
    DataColumn dc =null;
    int i = 0;

    if(Field_Count <= 0)
    {
    return null;
    }

    dt_tmp =new DataTable();

    for(i = 0; i < Field_Count; ++i)
    {
    dc =new DataColumn(i.ToString());
    dt_tmp.Columns.Add(dc);
    }

    return dt_tmp;
    }

    /// <summary>
    /// 从数据库里面获取数据
    /// </summary>
    /// <param name="strSql">查询语句</param>
    /// <returns>数据列表</returns>
    public DataTable GetDataTableFromDB(string strSql)
    {
    if(conn_str == null)
    {
    return null;
    }

    try
    {
    ole_connection.Open();//打开连接

    if(ole_connection.State == ConnectionState.Closed)
    {
    return null;
    }

    ole_command.CommandText = strSql;
    ole_command.Connection = ole_connection;

    ole_reader = ole_command.ExecuteReader(CommandBehavior.Default);

    dt = ConvertOleDbReaderToDataTable(ref ole_reader);

    ole_reader.Close();
    ole_reader.Dispose();
    }
    catch(System.Exception e)
    {
    Console.WriteLine(e.ToString());
    }
    finally
    {
    if(ole_connection.State != ConnectionState.Closed)
    {
    ole_connection.Close();
    }
    }

    return dt;
    }

    /// <summary>
    /// 执行sql语句
    /// </summary>
    /// <param name="strSql">sql语句</param>
    /// <returns>返回结果</returns>
    public int ExcuteSql(string strSql)
    {
    int nResult = 0;

    try
    {
    ole_connection.Open();//打开数据库连接
    if(ole_connection.State == ConnectionState.Closed)
    {
    return nResult;
    }

    ole_command.Connection = ole_connection;
    ole_command.CommandText = strSql;

    nResult = ole_command.ExecuteNonQuery();
    }
    catch(System.Exception e)
    {
    Console.WriteLine(e.ToString());
    return nResult;
    }
    finally
    {
    if(ole_connection.State != ConnectionState.Closed)
    {
    ole_connection.Close();
    }
    }

    return nResult;
    }

    //static void Main(string[] args)
    //{
    // AccessHelper Helper =new AccessHelper();
    // DataTable dt = Helper.GetDataTableFromDB("select * from test");

    // foreach(DataRow dr in dt.Rows)
    // {
    // Console.WriteLine(dr[0].ToString()+" "+dr[1].ToString());
    // }

    // Console.WriteLine(Helper.ExcuteSql("insert into test(test) values ('hello')"));
    //}

        }
    }

  • 相关阅读:
    AtCoDeer and Election Report
    乒乓球
    dp(装箱)
    《非你莫属》面试者现场跟面试官用英文对话,一口流利的英语口语厉害了
    冬天喝酸奶,可以加热吗?冬天喝酸奶,这4个方面要注意
    滑县两个富豪打赌,一人吃了一泡狗屎
    为什么外国富豪都喜欢捐光所有财产
    发的微博有敏感词
    社交网络
    怎么把word中的文字拉细变瘦长
  • 原文地址:https://www.cnblogs.com/baofengyu/p/5956760.html
Copyright © 2011-2022 走看看