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#仿密保卡功能的简单实现代码”的完整攻略: 1. 什么是仿密保卡功能? 仿密保卡,顾名思义,是指通过某些方法实现和模拟传统的硬件密保卡的功能。传统的硬件密保卡大多采用一些特定的加密算法和密码体系,将用户的身份信息和敏感数据存储在卡片内部,在用户身份验证和数据交换等场景中发挥重要作用。 仿密保卡则是通过软件的方式实现这些功能,不需要依赖于硬件卡片…

    C# 2023年6月6日
    00
  • Entity Framework Core 大小写敏感处理

      可以使用’StringComparison’吗? 在数据库查询操作中,不可避免去考虑字母大小写的问题,比如要在Movie表中查找“X-Men”这部电影,为了不区分字母大小写,按照Linq to memory的习惯,可能会写出如下代码: DbContext.DbSet<Movie>  .Where(item => string.Equal…

    C# 2023年4月17日
    00
  • C#基础知识之new关键字介绍

    下面是关于” C#基础知识之new关键字介绍”的完整攻略: 什么是new关键字 在C#中,new关键字有两种不同的用法。一种是用来创建新的对象,另一种是用来隐藏基类中的同名成员。 创建新的对象 当我们创建一个新的对象时,需要使用new关键字和构造函数。构造函数是一个类中的特殊方法,用于初始化新对象的所有字段和属性。以下是一个简单的示例: public cla…

    C# 2023年5月31日
    00
  • ASP.NET Core中Grpc通信的简单用法

    ASP.NET Core中Grpc通信的简单用法 gRPC是一种高性能、开源和通用的远程过程调用(RPC)框架,可以在任何地方运行。在ASP.NET Core中,可以使用gRPC来实现跨平台的通信。本文将介绍ASP.NET Core中gRPC通信的简单用法。 准备工作 在开始之前,需要完成以下准备工作: 安装 .NET Core SDK。 安装 Visual…

    C# 2023年5月17日
    00
  • 基于C#调用c++Dll结构体数组指针的问题详解

    “基于C#调用c++Dll结构体数组指针的问题详解”需要解决的问题是C#如何与C++中的DLL交互并调用其中的结构体数组指针。下面我将详细讲解该问题的完整攻略。 第一步:编写C++的DLL 首先,我们需要编写一个可供C#调用的C++ DLL。我们可以使用以下代码实现一个简单的结构体: typedef struct _MyStruct { int i; flo…

    C# 2023年6月7日
    00
  • C/C++/C#

    C/C++/C# 入门攻略 C、C++ 和 C# 都是广泛使用的编程语言,被用于各种用途。下面是一个逐步学习这些语言的攻略。 1. 学习 C 语言 如果您是一个新手程序员,那么学习 C 语言会是一个不错的开始。C 语言是一种结构化编程语言,许多其他语言都从 C 语言中继承了部分特性。下面是学习 C 语言的一些步骤: 1.1 安装 C 语言开发环境 首先需要在…

    C# 2023年5月15日
    00
  • 基于SqlSugar的开发框架循序渐进介绍(28)– 快速构建系统参数管理界面

    在参照一些行业系统软件的时候,发现一个做的挺不错的系统功能-系统参数管理,相当于把任何一个基础的系统参数碎片化进行管理,每次可以读取一个值进行管理,这样有利于我们快速的处理业务需求,是一个挺好的功能。本篇随笔模拟这个功能,基于SqlSugar开发框架的基础上,利用代码生成工具快速生成系统参数管理界面和相关的业务类生成。 1、参考和具体实现的效果对比 参照的界…

    C# 2023年4月27日
    00
  • 解析C#中的ref和out参数

    解析C#中的ref和out参数 C#中的ref和out参数都是用来传递参数的,它们可以让方法修改调用时传递的参数,而不是传递参数的副本,这节省了复制大量数据的开销,同时也可以避免数据错误。 ref参数 ref参数表示传递的是实参的引用(地址),方法可以直接修改这个引用所指向的变量的值。ref参数会把实参的引用(地址)传递给方法,然后方法会直接用这个引用(地址…

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