C#.NET访问数据库的通用类(Access篇)

转载 2006年06月09日 16:11:00

配置web.config文件:配置数据库连接参数

 

<appSettings>
    <!--
  connStr参数设置,事例说明:
  (1)Sql server数据库,例如“server=local;database=test;uid=sa;pwd=;”
  (2)Access数据库,例如“data/ex.mdb; user id='admin';Jet OLEDB:database password='admin';”
 -->
    <add key="connStr" value="DB/Example.mdb; user id='admin';Jet OLEDB:database password='admin';" />
  </appSettings>

编写ConnDbForAccess.cs 的代码

 

using System;
using System.Data;
using System.Data.OleDb;
using System.Web; 
using System.Web.UI;  

 

 


namespace Com.LXJ.Database
{
 /// <summary>
 /// conn 的摘要说明。
 /// </summary>
 public class ConnDbForAcccess
 {
  /// <summary>
  /// 连接数据库字符串
  /// </summary>
  private string connectionString;

  /// <summary>
  /// 存储数据库连接(保护类,只有由它派生的类才能访问)
  /// </summary>
  protected OleDbConnection Connection;

  /// <summary>
  /// 构造函数:数据库的默认连接
  /// </summary>
  public ConnDbForAcccess()
  {
   string connStr;
   connStr = System.Configuration.ConfigurationSettings.AppSettings["connStr"]; //从web.config配置中读取

   connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + connStr;

   Connection = new OleDbConnection(connectionString);
  }

  /// <summary>
  /// 构造函数:带有参数的数据库连接
  /// </summary>
  /// <param name="newConnectionString"></param>
  public ConnDbForAcccess(string newConnectionString)
  {
   connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + newConnectionString;
   Connection = new OleDbConnection(connectionString);
  }

  /// <summary>
  /// 获得连接字符串
  /// </summary>
  public string ConnectionString
  {
   get
   {
    return connectionString;
   }
  }

       
  /// <summary>
  /// 执行SQL语句没有返回结果,如:执行删除、更新、插入等操作
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns>操作成功标志</returns>
  public bool ExeSQL(string strSQL)
  {
   bool resultState = false;

   Connection.Open();
   OleDbTransaction myTrans = Connection.BeginTransaction();
   OleDbCommand command = new OleDbCommand(strSQL,Connection,myTrans);
   
   try
   {
    command.ExecuteNonQuery();
    myTrans.Commit();
    resultState = true;
   }
   catch
   {
    myTrans.Rollback();
    resultState = false;
   }
   finally
   {
    Connection.Close();
   }
   return resultState;
  }
   
  /// <summary>
  /// 执行SQL语句返回结果到DataReader中
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns>dataReader</returns>
  private OleDbDataReader ReturnDataReader(string strSQL)
  {
   Connection.Open();
   OleDbCommand command = new OleDbCommand(strSQL,Connection);
   OleDbDataReader dataReader = command.ExecuteReader();
   Connection.Close();

   return dataReader;
  }

  /// <summary>
  /// 执行SQL语句返回结果到DataSet中
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns>DataSet</returns>
  public DataSet ReturnDataSet(string strSQL)
  {
   Connection.Open();
   DataSet dataSet = new DataSet();
   OleDbDataAdapter OleDbDA = new OleDbDataAdapter(strSQL,Connection);
   OleDbDA.Fill(dataSet,"objDataSet");

   Connection.Close();
   return dataSet;
  }

  /// <summary>
  /// 执行一查询语句,同时返回查询结果数目
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns>sqlResultCount</returns>
  public int ReturnSqlResultCount(string strSQL)
  {
   int sqlResultCount = 0;

   try
   {
    Connection.Open();
    OleDbCommand command = new OleDbCommand(strSQL,Connection);
    OleDbDataReader dataReader = command.ExecuteReader();

    while(dataReader.Read())
    {
     sqlResultCount++;
    }
    dataReader.Close();
   }
   catch
   {
    sqlResultCount = 0;
   }
   finally
   {
    Connection.Close();
   }
   return sqlResultCount;
  } 

  
 }//
}//

相关文章推荐

C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)

using System; using System.Collections; using System.Collections.Specialized; using System.Data; ...
  • hfmmfh
  • hfmmfh
  • 2015年10月21日 16:03
  • 171

C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)

using System; using System.Collections; using System.Collections.Specialized; using System.Data; ...
  • cuoban
  • cuoban
  • 2015年01月17日 18:38
  • 643

asp.net下Oracle,SQL Server,Access万能数据库通用类

ASP.NET屏蔽底层数据库(Access,Sqlserver,Oracle)的经典代码 using System; using System.Collections; using Syst...
  • zz_mm
  • zz_mm
  • 2012年05月30日 10:46
  • 1006

c#.net 4 json序列化与反序列化通用类

整理的一个通用类 using System; using System.IO; using System.Collections.Generic; using System.Linq; using ...
  • wyw308
  • wyw308
  • 2012年04月03日 14:30
  • 1924

C#.net存储过程访问数据库(带参数)

在sql server2000/2005中创建LSystem数据库,包含t_users表(user_no,user_name,user_pwd),这都是上次的图书管理系统的数据库。。。仅当做实验而已 ...
  • dxt1107
  • dxt1107
  • 2011年01月03日 20:36
  • 1093

C#.net免客户端访问Oracle数据库

平时做开发主要使用.net,工作中又经常要访问Oracle数据库,.net对Oracle的访问一般有两种方法:一是使用官方的ODAC for.net,二是使用.net框架自己的System.Oracl...

C#.Net 较完美随机验证码通用类

  • 2008年11月20日 16:17
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: C#.NET访问数据库的通用类(Access篇)
举报原因:
原因补充:

(最多只允许输入30个字)