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日

相关文章

  • .Net Core简单使用Mvc内置的Ioc(续)

    .NET Core简单使用Mvc内置的Ioc(续) 在上一篇攻略中,我们介绍了如何在.NET Core应用程序中使用Mvc内置的Ioc容器。在本攻略中,我们将继续介绍如何使用Mvc内置的Ioc容器,并提供两个示例说明。 1. 注册服务 在.NET Core应用程序中,可以使用IServiceCollection接口的AddTransient、AddScope…

    C# 2023年5月16日
    00
  • 轻松学习C#的哈希表

    轻松学习C#的哈希表攻略 什么是哈希表 哈希表是一种通过哈希函数来实现的数据结构。哈希函数将每个键(key)映射到值(value),使得我们可以通过键快速的访问到对应的值。使用哈希表可以大幅提高数据的访问速度,具有极高的效率。 如何创建一个哈希表 在C#中,可以通过HashTable类来创建一个哈希表。创建方法如下: //创建一个哈希表 Hashtable …

    C# 2023年5月31日
    00
  • 简单实现C#异步操作

    下面我将详细讲解“简单实现C#异步操作”的完整攻略。 什么是异步操作 异步操作是指当程序执行某些操作时,不需要等待某些阻塞的操作完成,而是可以先执行其他任务。在C#中,异步操作主要采用async和await关键字来实现。 实现异步操作的步骤 定义异步方法 首先需要定义异步方法,可以使用async关键字修饰,方法体内可以使用await关键字来等待异步操作的完成…

    C# 2023年5月15日
    00
  • Unity中 ShaderGraph 实现超级炫酷的溶解效果入门级教程

    这里是详细讲解“Unity中 ShaderGraph 实现超级炫酷的溶解效果入门级教程”的完整攻略。 介绍 在Unity中,ShaderGraph是一种非常方便和强大的工具,可以帮助开发者制作各种各样的shader。在本教程中,我们将使用ShaderGraph来制作一个超级炫酷的溶解效果。 设置材质 首先,我们需要为我们的模型设置一个材质,然后把这个材质放到…

    C# 2023年6月3日
    00
  • C#窗体读取EXCEL并存入SQL数据库的方法

    下面我为你详细讲解“C#窗体读取EXCEL并存入SQL数据库的方法”的完整攻略。 一、准备工作 在开始编写代码前,需要先安装以下几个组件: Microsoft.Office.Interop.Excel (用于读取Excel文件); System.Data.SqlClient (用于操作SQL数据库)。 二、读取Excel文件 首先,需要引入Microsoft…

    C# 2023年6月2日
    00
  • 浅谈C#9.0新特性之参数非空检查简化

    首先,C# 9.0中引入的新特性包含了很多实用的语言功能,其中参数非空检查简化就是其中之一。在传统的C#语言中,我们常使用条件判断语句来检查参数是否为null,这样代码可读性较差,而C# 9.0中的新特性可以更加方便快捷地进行参数非空检查。 简化前的参数非空检查 在C# 9.0之前,我们通常使用以下方式来进行参数非空检查: void PrintMessage…

    C# 2023年5月15日
    00
  • C#中线程同步对象的方法分析

    请看下面的详细讲解。 C#中线程同步对象的方法分析 在多线程编程中,线程同步是必不可少的一部分。C#中提供了多种线程同步对象,本文将对这些对象的使用方法进行分析。 1. ManualResetEvent ManualResetEvent用于在线程间进行信号传递。通常情况下,线程A等待线程B完成某个操作后再进行下一步操作,这时候线程B需要向线程A发信号。Man…

    C# 2023年5月15日
    00
  • C#中?、?.、??、??=运算符的用法

    下面是详细讲解C#中?、?.、??、??=运算符的用法: ?运算符 ?运算符在C#中表示空值传播(Null Propagation),其作用是防止空引用异常(NullReferenceException)的发生,它的基本语法形式如下:obj?.PropertyName。 当obj不为null时,?.会直接返回obj.PropertyName的值;当obj为n…

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