热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

连接Access数据库的DAL层操作代码

usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.IO;usingACSSystem.Data.OleDb;namespaceDAL{publicclassData

using System; using System.Data; using System.Configuration; using System.Web; using System.Collections; using System.Collections.Generic; using System.Text; using System.IO; using ACS = System.Data.OleDb; namespace DAL { public class Data

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.IO;
using ACS = System.Data.OleDb;
namespace DAL
{
public class DataAccess
{
//创建连接access数据库的字符串
private string AccessCennection = null;

#region 构造函数
///


/// 构造函数创建连接字符串
///

public DataAccess()
{
this.AccessCennection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\Inetpub\\wwwroot\\biz\\App_Data\\ccc.mdb";//连接数据库字符串
}
#endregion

#region 创建连接数据库的连接
///


/// 创建连接数据库的连接
///

/// 连接数据库的字符串
/// 返回实体连接
private ACS.OleDbConnection CreateACS_Connection(string acs_connection)
{
return new ACS.OleDbConnection(acs_connection);
}
#endregion

#region 创建操纵数据库的实体命令
///


/// 创建操纵数据库的实体命令
///

/// 数据库操纵语言
/// 数据库连接实体
/// 数据库命令实体
private ACS.OleDbCommand CreateACS_Command(string sql, ACS.OleDbConnection acs_connection)
{
return new ACS.OleDbCommand(sql, acs_connection);
}
#endregion

#region 创建填充数据用的数据适配器
///


/// 创建填充数据用的数据适配器
///

/// 数据库命令实体
/// 数据库适配器的实体
private ACS.OleDbDataAdapter CreateACS_Adapter(ACS.OleDbCommand acs_command)
{
return new ACS.OleDbDataAdapter(acs_command);
}
#endregion

#region 通过查询语句返回用户需要的结果
///


/// 通过查询语句返回用户需要的结果
///

/// 查询语句
/// 返回的结果集
public DataSet Select(string sql)
{
ACS.OleDbConnection acs_cOnnection= null;
ACS.OleDbCommand acs_command;
ACS.OleDbDataAdapter acs_adapter;
DataSet ds = new DataSet();
try
{
acs_cOnnection= CreateACS_Connection(this.AccessCennection);
acs_command = CreateACS_Command(sql, acs_connection);
acs_adapter = CreateACS_Adapter(acs_command);
acs_connection.Open();
acs_adapter.Fill(ds);
}
catch (Exception acse)
{

}
finally
{
acs_connection.Close();
}
return ds;
}
#endregion

#region 批处理执行SQL操作
///


/// 批处理执行SQL操作
///

/// SQL语句泛型类
/// 是否成功
public Boolean ExecuteSQL(List SqlStrings)
{
bool success = true;
int Rows = 0;
ACS.OleDbConnection acs_cOnnection= null;
acs_cOnnection= CreateACS_Connection(this.AccessCennection);
ACS.OleDbCommand acs_command = new System.Data.OleDb.OleDbCommand();
acs_connection.Open();
ACS.OleDbTransaction trans = acs_connection.BeginTransaction();
acs_command.COnnection= acs_connection;
acs_command.Transaction = trans;
try
{
for (int i = 0; i {
acs_command.CommandText = SqlStrings[i].ToString();
Rows += acs_command.ExecuteNonQuery();
}
trans.Commit();
}
catch
{
success = false;
trans.Rollback();
}
finally
{
acs_connection.Close();
}
if (Rows == 0)
success = false;
return success;
}
public Boolean ExecuteSQL(String SqlString)
{
List SqlStrings = new List();
SqlStrings.Add(SqlString);
return ExecuteSQL(SqlStrings);
}
#endregion
#region 在一个数据表中插入一条记录
///
/// 在一个数据表中插入一条记录
///

/// 表名
/// 哈希表,键值(Key)为字段名,值(value)为字段值
/// 是否成功
public bool Insert(String TableName, Hashtable Cols)
{
int Count = 0;//用于SQL语句创建
int Rows = 0;//记录受影响的行数
if (Cols.Count <= 0)
{
return true;
}
String Fields = "(";
String Values = " Values('";
foreach (DictionaryEntry item in Cols)
{
if (Count != 0)
{
Fields += ",";
Values += "','";
}
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;
}
Fields += ")";
Values += "')";
String SqlString = "insert into " + TableName + Fields + Values;
return ExecuteSQL(SqlString);
}
#endregion
#region 更新一个数据表的一条记录
///
/// 更新一个数据表的一条记录
///

/// 表名
/// 哈希表,键值为字段名,值为字段值
/// Where字句
///
public Boolean Update(String TableName, Hashtable Cols, String Where)
{
int Count = 0;
if (Cols.Count <= 0)
{
return true;
}
String Fields = " ";
foreach (DictionaryEntry item in Cols)
{
if (Count != 0)
{
Fields += ",";
}
Fields += item.Key.ToString();
Fields += "=";
Fields += item.Value.ToString();
}
Fields += " ";
String SqlString = "update " + TableName + " set " + Fields + Where;
return ExecuteSQL(SqlString);
}
#endregion
#region 获取数据返回一个Dataset
///
/// 获取数据返回一个Dataset
///

/// Sql语句
/// DataSet
public DataSet GetDataSet(String SqlString)
{
ACS.OleDbConnection acs_cOnnection= null;
ACS.OleDbCommand acs_command;
ACS.OleDbDataAdapter acs_adapter;
DataSet ds = new DataSet();
try
{
acs_cOnnection= CreateACS_Connection(this.AccessCennection);
acs_command = CreateACS_Command(SqlString, acs_connection);
acs_adapter = CreateACS_Adapter(acs_command);
acs_connection.Open();
acs_adapter.Fill(ds);
}
catch (Exception acse)
{
}
finally
{
acs_connection.Close();
}
if (ds.Tables.Count == 0)
{
return null;
}
return ds;
}
#endregion
#region 根据用户所给的条件返回用户需要的数据
///
/// 根据用户所给的条件返回用户需要的数据
///

/// 表名
/// 参数类型
/// 参数值
/// DataSet
public DataSet Select(String TableName, List ParameterTypes, List ParameterValues)
{
StringBuilder sbSql = new StringBuilder("SELECT * FROM ");
sbSql.Append(TableName);
if (ParameterTypes[0] != null && ParameterValues[0] != null)
{
sbSql.Append(" WHERE ").Append(ParameterTypes[0]).Append(" ='").Append(ParameterValues[0]).Append("'");
//如果还有参数就继续加
for (int i = 1; i {
sbSql.Append(" and ").Append(ParameterTypes[i]).Append(" ='").Append(ParameterValues[i]).Append("'");
}
}
String SqlString = sbSql.ToString();
return GetDataSet(SqlString);
}
///
/// 根据用户所给的条件返回用户需要的数据(单参数)
///

/// 表名
/// 参数类型
/// 参数值
/// DataSet
public DataSet Select(String TableName, String ParameterType, String ParameterValue)
{
List ParameterTypes = new List();
List ParameterValues = new List();
ParameterTypes.Add(ParameterType);
ParameterValues.Add(ParameterValue);
return Select(TableName, ParameterTypes, ParameterValues);
}
#endregion
#region 获取数据,返回一个DataRow
///
/// 获取数据,返回一个DataRow
///

/// Sql语句
/// DataRow
public DataRow GetDataRow(String SqlString)
{
DataSet ds = GetDataSet(SqlString);
ds.CaseSensitive = false;
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0];
}
else
{
return null;
}
}
///
/// 根据条件返回用户需要的数据
///

/// 表名
/// 参数类型
/// 参数值
/// DataRow
public DataRow Select_DataRow(String TableName, List ParameterTypes, List ParameterValues)
{
DataSet ds = Select(TableName, ParameterTypes, ParameterValues);
ds.CaseSensitive = false;
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0];
}
else
{
return null;
}
}
else
{
return null;
}
}

///


/// 根据用户给定的条件返回数据(单参数)
///

/// 表名
/// 参数类型
/// 参数值
/// DataRow
public DataRow Select_DataRow(String TableName, String ParameterType, String ParameterValue)
{
List ParameterTypes = new List();
List ParameterValues = new List();
ParameterTypes.Add(ParameterType);
ParameterValues.Add(ParameterValue);
return Select_DataRow(TableName, ParameterTypes, ParameterValues);
}
#endregion
#region 从一个DataRow中,安全得到colname中的值,值为字符串类型
///
/// 从一个DataRow中,安全得到colname中的值,值为字符串类型
///

/// 数据行对象
/// 列名
/// 如果值存在,返回;否则,返回System.String.Empty
public static String ValidateDataRow_S(DataRow row, String colname)
{
if (row[colname] != DBNull.Value)
return row[colname].ToString();
else
return System.String.Empty;
}
#endregion
}
}
推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 本文深入探讨了 C# 中 `SqlCommand` 和 `SqlDataAdapter` 的核心差异及其应用场景。`SqlCommand` 主要用于执行单一的 SQL 命令,并通过 `DataReader` 获取结果,具有较高的执行效率,但灵活性较低。相比之下,`SqlDataAdapter` 则适用于复杂的数据操作,通过 `DataSet` 提供了更多的数据处理功能,如数据填充、更新和批量操作,更适合需要频繁数据交互的场景。 ... [详细]
  • 在 Asp.net 应用中,动态加载 DropDownList 控件的数据源是一项常见需求。本文探讨了如何高效地从数据库中获取数据,并实时更新下拉列表,确保用户界面始终与后台数据保持同步。通过使用 ADO.NET 和 LINQ to SQL 技术,开发者可以轻松实现这一功能,同时提高应用的性能和用户体验。文中还提供了代码示例和最佳实践,帮助开发者解决常见的数据绑定问题。 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • SeMITechnologies正在使用矢量搜索引擎Weaviate构建的内容。SeMI的首席执行官兼联合创始人BobvanLuijt说,它是一种独特的AI优先数据库,使用机器学习 ... [详细]
  • 本文介绍了如何使用 PostgreSQL 的 `UPDATE ... FROM` 语法,通过映射表实现对多行记录进行高效的批量更新。这种方法不仅适用于单列更新,还支持多列的同时更新。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
author-avatar
维伦忆任冠臻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有