架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 22556|回复: 3

[资料] c#操作access数据库DBHelp类

[复制链接]
发表于 2015-9-23 09:41:24 | 显示全部楼层 |阅读模式
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data.OleDb;
  6. using System.Data;

  7. namespace Model
  8. {
  9.     public class AccessDBHelper
  10.     {
  11.         /// <summary>
  12.         /// 操作结果消息
  13.         /// </summary>
  14.         public static string errorMessage = string.Empty;
  15.         public const string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\aaa.mdb; Jet OLEDB:Database Password=111";
  16.         /// <summary>
  17.         /// 执行SQL语句.返回执行结果对象
  18.         /// 【Select:返回DataTable 】【Insert/Update/Delete:返回Int型受印象行数】【 CreateTable/DropTable:返回True||False】
  19.         /// </summary>
  20.         /// <param name="sqlStr">要执行的SQL语句</param>
  21.         /// <param name="connStr">数据库连接字符串</param>
  22.         /// <param name="opt">要执行的操作</param>
  23.         /// <returns>
  24.         /// 返回执行结果对象【Select:返回DataTable 】【Insert/Update/Delete:返回Int型受印象行数】【 CreateTable/DropTable:返回True||False】
  25.         /// </returns>
  26.         /// <Author> frd 2011-9-9</Author>
  27.         public static object ExecSql(string sqlStr, OperateType opt)
  28.         {
  29.             object returnObj = new object();
  30.             OleDbConnection odbConn = new OleDbConnection(connStr);
  31.             odbConn.Open();
  32.             switch (opt)
  33.             {
  34.                 case OperateType.Select:
  35.                     {
  36.                         DataTable selectResult = new DataTable();
  37.                         try
  38.                         {
  39.                             OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sqlStr, connStr);
  40.                             DataSet dataSet = new DataSet();
  41.                             dataAdapter.Fill(dataSet, "Select");
  42.                             returnObj = dataSet.Tables[0];
  43.                         }
  44.                         catch (Exception ex)
  45.                         {
  46.                             returnObj = -1;
  47.                             errorMessage = "数据查询失败:" + ex.ToString();
  48.                         }
  49.                         finally
  50.                         {
  51.                             odbConn.Close();
  52.                         }
  53.                     }
  54.                     break;
  55.                 case OperateType.Insert:
  56.                 case OperateType.Update:
  57.                 case OperateType.Delete:
  58.                     {
  59.                         try
  60.                         {
  61.                             OleDbCommand odbc = new OleDbCommand(sqlStr, odbConn);
  62.                             returnObj = odbc.ExecuteNonQuery();
  63.                         }
  64.                         catch (Exception ex)
  65.                         {
  66.                             returnObj = -1;
  67.                             errorMessage = "数据操作失败:" + ex.ToString();
  68.                         }
  69.                         finally
  70.                         {
  71.                             odbConn.Close();
  72.                         }
  73.                     }
  74.                     break;
  75.                 case OperateType.CreateTable:
  76.                 case OperateType.DropTable:
  77.                     {
  78.                         try
  79.                         {
  80.                             OleDbCommand odbc = new OleDbCommand(sqlStr, odbConn);
  81.                             odbc.ExecuteNonQuery();
  82.                             returnObj = true;
  83.                         }
  84.                         catch (Exception ex)
  85.                         {
  86.                             returnObj = false;
  87.                             errorMessage = "数据操作失败:" + ex.ToString();
  88.                         }
  89.                         finally
  90.                         {
  91.                             odbConn.Close();
  92.                         }
  93.                     }
  94.                     break;
  95.                 default:
  96.                     { odbConn.Close(); }
  97.                     break;
  98.             }

  99.             return returnObj;
  100.         }

  101.         /// <summary>
  102.         /// 数据库操作类型
  103.         /// </summary>
  104.         public enum OperateType
  105.         {
  106.             /// <summary>
  107.             /// 查询记录
  108.             /// </summary>
  109.             Select,
  110.             /// <summary>
  111.             /// 插入记录
  112.             /// </summary>
  113.             Insert,
  114.             /// <summary>
  115.             /// 更新记录
  116.             /// </summary>
  117.             Update,
  118.             /// <summary>
  119.             /// 删除记录
  120.             /// </summary>
  121.             Delete,
  122.             /// <summary>
  123.             /// 创建表
  124.             /// </summary>
  125.             CreateTable,
  126.             /// <summary>
  127.             /// 删除表
  128.             /// </summary>
  129.             DropTable

  130.         }
  131.     }
  132. }
复制代码
未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
http://www.itsvse.com/thread-2293-1-1.html
(出处: 武汉软件工程职业学院)
可能会报这个错误。





上一篇:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
下一篇:教你手动破解任意网吧收费,是任何收费!永不过时!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2015-9-23 18:25:44 | 显示全部楼层
QQ截图20150923093851.jpg
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-2-26 18:27:10 | 显示全部楼层
1楼的方法   在并发的情况下容易挂掉,一会打开一会关闭的。不推荐,用一下我下面的方法吧!
  1. public class AccessDB
  2.     {
  3.         //变量声明处#region 变量声明处   
  4.         public OleDbConnection Conn;   
  5.         public string ConnString;//连接字符串  
  6.    
  7.    
  8.         //构造函数与连接关闭数据库#region 构造函数与连接关闭数据库   
  9.         /**//// <summary>   
  10.         /// 构造函数   
  11.         /// </summary>   
  12.         /// <param name="Dbpath">ACCESS数据库路径</param>   
  13.         public AccessDB(string Dbpath)   
  14.         {   
  15.             //ConnString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=";   
  16.             ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";
  17.             ConnString += Dbpath;   
  18.             Conn = new OleDbConnection(ConnString);   
  19.             Conn.Open();   
  20.         }   
  21.    
  22.         /**//// <summary>   
  23.         /// 打开数据源链接   
  24.         /// </summary>   
  25.         /// <returns></returns>   
  26.         public OleDbConnection DbConn()   
  27.         {   
  28.             Conn.Open();   
  29.             return Conn;   
  30.         }   
  31.    
  32.         /**//// <summary>   
  33.         /// 请在数据传递完毕后调用该函数,关闭数据链接。   
  34.         /// </summary>   
  35.         public void Close()   
  36.         {   
  37.             Conn.Close();   
  38.         }  
  39.    
  40.    
  41.         //数据库基本操作#region 数据库基本操作   
  42.         /**//// <summary>   
  43.         /// 根据SQL命令返回数据DataTable数据表,   
  44.         /// 可直接作为dataGridView的数据源   
  45.         /// </summary>   
  46.         /// <param name="SQL"></param>   
  47.         /// <returns></returns>   
  48.         public DataTable SelectToDataTable(string SQL)   
  49.         {   
  50.             OleDbDataAdapter adapter = new OleDbDataAdapter();   
  51.             OleDbCommand command = new OleDbCommand(SQL, Conn);   
  52.             adapter.SelectCommand = command;   
  53.             DataTable Dt = new DataTable();   
  54.             adapter.Fill(Dt);      
  55.             return Dt;   
  56.         }   
  57.    
  58.         /**//// <summary>   
  59.         /// 根据SQL命令返回数据DataSet数据集,其中的表可直接作为dataGridView的数据源。   
  60.         /// </summary>   
  61.         /// <param name="SQL"></param>   
  62.         /// <param name="subtableName">在返回的数据集中所添加的表的名称</param>   
  63.         /// <returns></returns>   
  64.         public DataSet SelectToDataSet(string SQL, string subtableName)   
  65.         {   
  66.             OleDbDataAdapter adapter = new OleDbDataAdapter();   
  67.             OleDbCommand command = new OleDbCommand(SQL, Conn);   
  68.             adapter.SelectCommand = command;   
  69.             DataSet Ds = new DataSet();   
  70.             Ds.Tables.Add(subtableName);   
  71.             adapter.Fill(Ds, subtableName);   
  72.             return Ds;   
  73.         }   
  74.    
  75.         /**//// <summary>   
  76.         /// 在指定的数据集中添加带有指定名称的表,由于存在覆盖已有名称表的危险,返回操作之前的数据集。   
  77.         /// </summary>   
  78.         /// <param name="SQL"></param>   
  79.         /// <param name="subtableName">添加的表名</param>   
  80.         /// <param name="DataSetName">被添加的数据集名</param>   
  81.         /// <returns></returns>   
  82.         public DataSet SelectToDataSet (string SQL, string subtableName, DataSet DataSetName)   
  83.         {   
  84.             OleDbDataAdapter adapter = new OleDbDataAdapter();   
  85.             OleDbCommand command = new OleDbCommand(SQL, Conn);   
  86.             adapter.SelectCommand = command;   
  87.             DataTable Dt = new DataTable();   
  88.             DataSet Ds = new DataSet();   
  89.             Ds = DataSetName;   
  90.             adapter.Fill(DataSetName, subtableName);   
  91.             return Ds;   
  92.         }   
  93.    
  94.         /**//// <summary>   
  95.         /// 根据SQL命令返回OleDbDataAdapter,   
  96.         /// 使用前请在主程序中添加命名空间System.Data.OleDb   
  97.         /// </summary>   
  98.         /// <param name="SQL"></param>   
  99.         /// <returns></returns>   
  100.         public OleDbDataAdapter SelectToOleDbDataAdapter(string SQL)   
  101.         {   
  102.             OleDbDataAdapter adapter = new OleDbDataAdapter();   
  103.             OleDbCommand command = new OleDbCommand(SQL, Conn);   
  104.             adapter.SelectCommand = command;   
  105.             return adapter;   
  106.         }   
  107.    
  108.         /**//// <summary>   
  109.         /// 执行SQL命令,不需要返回数据的修改,删除可以使用本函数   
  110.         /// </summary>   
  111.         /// <param name="SQL"></param>   
  112.         /// <returns></returns>   
  113.         public bool ExecuteSQLNonquery(string SQL)   
  114.         {   
  115.             OleDbCommand cmd = new OleDbCommand(SQL, Conn);   
  116.             try
  117.             {   
  118.                 cmd.ExecuteNonQuery();   
  119.                 return true;   
  120.             }   
  121.             catch
  122.             {   
  123.                 return false;   
  124.             }   
  125.         }  
  126.     }
复制代码


码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-3-30 16:07:28 | 显示全部楼层
小渣渣 发表于 2016-2-26 18:27
1楼的方法   在并发的情况下容易挂掉,一会打开一会关闭的。不推荐,用一下我下面的方法吧!

Model.AccessDB db = new Model.AccessDB(@".\AlipayDB.mdb;Jet OLEDB:Database Password=123");
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-3-17 18:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表