C#操作Access通用类实例

C#操作Access数据库通用类是一种可以实现对Access数据库进行操作的通用类,可以在项目中共用,减少了重复编写代码的工作量,提高了开发效率。下面给出实现的完整攻略等内容:

步骤一:创建Access数据库

首先需要在电脑上安装好Access数据库,在安装好之后打开Access,并通过创建表格的方式来创建一个Access数据库。

步骤二:新建C#项目

通过Visual Studio或其他编译器工具,创建一个新的C#项目。

步骤三:添加引用

在新建的C#项目当中添加对于System.Data.OleDb命名空间的引用,同时也需要添加对于Microsoft.Office.Interop.Access.Dao命名空间的引用,这样就可以使用Access数据库通用类进行相关操作。

步骤四:创建Access数据库通用类并实现

创建一个名为AccessHelper的静态类,该类中包含需定义常量、字段和相关方法以及属性:

public static string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";//Access2003
//public static string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";//Access2007及以上
public static OleDbConnection con = null;

/// <summary>  
/// 打开数据库连接  
/// </summary>  
public static void Open()
{
    try
    {
        if (con == null)
        {
            con = new OleDbConnection(strConn);
        }
        if (con.State == ConnectionState.Closed)
        {
            con.Open();
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

/// <summary>  
/// 关闭数据库连接  
/// </summary>  
public static void Close()
{
    try
    {
        if (con != null)
        {
            if (con.State == ConnectionState.Open)
            {
                con.Close();
                con.Dispose();
            }
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="sql">需要执行的SQL语句</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(string sql)
{
    try
    {
        if (con == null || con.State == ConnectionState.Closed)
        {
            Open();
        }
        OleDbCommand cmd = new OleDbCommand(sql, con);
        return cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        Close();
    }
}

/// <summary>
/// 执行SQL语句并返回第一行第一列的值
/// </summary>
/// <param name="sql">需要执行的SQL语句</param>
/// <returns>值</returns>
public static object ExecuteScalar(string sql)
{
    try
    {
        if (con == null || con.State == ConnectionState.Closed)
        {
            Open();
        }
        OleDbCommand cmd = new OleDbCommand(sql, con);
        return cmd.ExecuteScalar();
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        Close();
    }
}

/// <summary>
/// 执行SQL语句并返回Select语句的结果为DataTable
/// </summary>
/// <param name="sql">需要执行的SQL语句</param>
/// <returns>DataTable对象</returns>
public static DataTable ExecuteDataTable(string sql)
{
    try
    {
        if (con == null || con.State == ConnectionState.Closed)
        {
            Open();
        }
        DataSet ds = new DataSet();
        OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
        da.Fill(ds);
        return ds.Tables[0];
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        Close();
    }
}

步骤五:使用Access数据库通用类

完成以上的步骤之后,在C#项目中就可以非常方便地使用Access数据库通用类了。下面给出两个使用示例:

示例1:查询数据

string sql = "select * from Student where ID=1";//需要执行的SQL语句
DataTable dt = AccessHelper.ExecuteDataTable(sql);//通过通用类获取查询结果
foreach (DataRow dr in dt.Rows)//遍历结果数据行
{
    Console.WriteLine("Name:{0} Sex:{1} Age:{2}", dr["Name"].ToString(), dr["Sex"].ToString(), dr["Age"].ToString());
}

示例2:插入数据

string sql = "insert into Student(Name, Sex, Age) values('张三', '男', 18)";//需要执行的SQL语句
int result = AccessHelper.ExecuteNonQuery(sql);//通过通用类插入数据
if (result > 0)
{
    Console.WriteLine("插入成功");
}
else
{
    Console.WriteLine("插入失败");
}

完成以上步骤和示例操作之后,即可实现C#操作Access数据库通用类的相关功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作Access通用类实例 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#: 引用变量与数值变量的区别

    C#中变量分为引用变量和数值变量,它们的区别在于它们的存储方式和数据类型。 引用变量和数值变量的概念 引用变量指的是具有内存地址的变量,该变量存储的是对象在内存中的地址。引用变量指向对象存储在堆内存中的地址而不是实际的值。当程序使用引用变量时,实际上是通过内存地址来操作堆中的对象。引用变量主要用于引用类型数据,如类、接口、委托等。 数值变量指的是实际的数值,…

    C# 2023年6月7日
    00
  • 由ASP.NET Core读取Response.Body引发的思考

    前言     前几天有群友在群里问如何在我之前的文章《ASP.NET Core WebApi返回结果统一包装实践》的时候有点疑问,主要的疑问点就是关于Respouse的读取的问题。在之前的文章《深入探究ASP.NET Core读取Request.Body的正确方式》曾分析过关于Request的读取问题,需要读取Response的场景同样经常遇到,比如读取输出…

    C# 2023年4月18日
    00
  • C#入门教程之集合ArrayList用法详解

    C#入门教程之集合ArrayList用法详解 什么是ArrayList? ArrayList是C#中的一种集合,其可存储任意类型的元素,并且可以动态增加或删除元素。与数组相比,ArrayList的大小可以动态变化,使其更加灵活。 ArrayList的基本用法 创建和初始化ArrayList 使用ArrayList时,需要先实例化一个ArrayList对象,然…

    C# 2023年6月1日
    00
  • C# 16进制与字符串、字节数组之间的转换

    下面我将详细讲解C#中16进制与字符串、字节数组之间的转换。 字符串与16进制转换 字符串转16进制 我们可以使用BitConverter和Encoding提供的方法来将字符串转化为16进制。 以下是将字符串转化为16进制的示例代码: string str = "Hello World!"; byte[] bytes = Encoding…

    C# 2023年6月7日
    00
  • C# String.EndsWith()方法: 检查字符串是否以指定的后缀结尾

    String.EndsWith()是C#中用于判断字符串是否以指定的字符串结尾的方法。该方法的定义如下: public bool EndsWith(string value); 其中,参数value表示要比较的字符串。该方法会将当前字符串与指定的字符串进行比较,如果当前字符串以指定的字符串结尾,则返回true,否则返回false。 下面分别通过两个实例来说明…

    C# 2023年4月19日
    00
  • Entity Framework Core种子数据Data-Seeding

    Entity Framework Core 种子数据(Data Seeding)可以帮助开发者在应用程序中使用预定义的数据填充数据库。本篇文章将从概览、设计、实现等方面详细地介绍 Entity Framework Core 种子数据的完整攻略,包括,如何配置数据模型和 DbContext,如何添加种子数据,以及如何在应用启动时自动应用种子数据等。 1. 概述…

    C# 2023年6月3日
    00
  • 在C#中如何使用正式表达式获取匹配所需数据

    当我们需要从字符串中提取相关信息时,可以使用正则表达式来进行匹配。在C#中,使用正则表达式需要引入System.Text.RegularExpressions命名空间。 以下是使用正则表达式获取匹配所需数据的完整攻略: 1.创建正则表达式对象 我们需要使用Regex类创建正则表达式对象。Regex类提供了多个构造函数,其中最常用的是接收两个参数的Regex构…

    C# 2023年6月6日
    00
  • C# 透明窗体制作实现方法比较分析

    C#中透明窗体的制作实现方法比较有不同的方式,本攻略将分别介绍三种用于制作透明窗体的方法,并分析比较它们的优缺点。 方式一:使用 Form 的 Opacity 属性 使用该方法,制作出的透明窗体是基于整个窗体的透明度来实现的,可使用 Form 的 Opacity 属性来设置窗体的透明程度,取值范围是0-1之间。 private void Form1_Load…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部