C#(.NET)数据访问连接、查询、插入等操作的封装类

C#(.NET)数据访问连接、查询、插入等操作的封装类是开发.NET应用程序必不可少的一部分。下面是整个封装类的详细攻略。

1.数据库连接

1.1 数据库连接字符串

在封装类中,首先需要定义数据库的连接字符串。连接字符串包含数据库服务器名、数据库名、用户身份验证等信息。

string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";

1.2 数据库连接方法

连接到数据库的方法可以通过ADO.NET中提供的SqlConnection类进行连接。

public static SqlConnection OpenConnection(string connectionString)
{
    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();
    return connection;
}

2.查询操作

在进行查询操作时,可以使用SqlCommand类和SqlDataReader类执行查询并返回结果。下面是一条SQL查询的封装方法。

public static DataTable ExecuteQuery(string connectionString, string queryString, CommandType commandType, params SqlParameter[] parameters)
{
    using (SqlConnection connection = OpenConnection(connectionString))
    {
        using (SqlCommand command = new SqlCommand(queryString, connection))
        {
            command.CommandType = commandType;
            if (parameters != null && parameters.Length > 0)
            {
                command.Parameters.AddRange(parameters);
            }
            using (SqlDataReader reader = command.ExecuteReader())
            {
                DataTable table = new DataTable();
                table.Load(reader);
                return table;
            }
        }
    }
}

3.插入操作

插入操作使用SqlCommand类的ExecuteNonQuery方法执行INSERT语句。下面是一条SQL插入的封装方法。

public static int ExecuteNonQuery(string connectionString, string queryString, CommandType commandType, params SqlParameter[] parameters)
{
    using (SqlConnection connection = OpenConnection(connectionString))
    {
        using (SqlCommand command = new SqlCommand(queryString, connection))
        {
            command.CommandType = commandType;
            if (parameters != null && parameters.Length > 0)
            {
                command.Parameters.AddRange(parameters);
            }
            int result = command.ExecuteNonQuery();
            return result;
        }
    }
}

示例1:查询学生表

下面是一个查询学生表格的示例代码,查询结果将放入DataTable中返回。

string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
string queryString = "SELECT * FROM Students WHERE Age > @Age";
SqlParameter parameter = new SqlParameter("@Age", 18);
DataTable table = DBHelper.ExecuteQuery(connectionString, queryString, CommandType.Text, parameter);

示例2:添加学生记录

下面是一个添加学生记录的示例代码,返回值为影响的行数。

string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
string queryString = "INSERT INTO Students (Name, Age) VALUES (@Name, @Age)"
SqlParameter[] parameters = new SqlParameter[] {
    new SqlParameter("@Name", "张三"),
    new SqlParameter("@Age", 19)
};
int result = DBHelper.ExecuteNonQuery(connectionString, queryString, CommandType.Text, parameters);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#(.NET)数据访问连接、查询、插入等操作的封装类 - Python技术站

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

相关文章

  • winfrom 打印表格 字符串的封装实现代码 附源码下载

    下面是关于“winform打印表格字符串的封装实现代码附源码下载”的完整攻略: 一、背景介绍 在实际开发中,我们经常会遇到需要打印表格字符串的需求,例如打印报表、流水账单等等。在C#的winforms框架中,可以通过调用PrintDocument类的Print方法来实现打印功能。然而,PrintDocument类并没有提供直接打印表格字符串的方法,因此需要我…

    C# 2023年5月15日
    00
  • C# StackExchange.Redis 用法汇总

    C# StackExchange.Redis 用法汇总 简介 StackExchange.Redis是一种快速、零分配的. NET Redis客户端。 它支持广泛的Redis部署场景,从单机到主从到Redis集群等等。 除了基本Redis功能外,它还提供了批量操作,管道,事务,Lua脚本执行,Pub / Sub,内置的分区支持等功能。 安装 首先安装Stac…

    C# 2023年5月31日
    00
  • C#中IEnumerable接口介绍并实现自定义集合

    下面是详细讲解“C#中IEnumerable接口介绍并实现自定义集合”的完整攻略: 什么是IEnumerable接口 IEnumerable接口是C#中的一个接口,可以用来枚举数据集合中的数据。 IEnumerable接口定义了一个方法GetEnumerator,这个方法返回一个IEnumerator接口的实例,这个实例可以用来依次访问集合中的元素。 在C#…

    C# 2023年5月31日
    00
  • C#中使用FilleStream实现视频文件的复制功能

    C#中使用Filestream实现视频文件的复制功能可以通过以下步骤来完成。 步骤1:引入命名空间 引入System.IO命名空间,该命名空间包含了我们使用的FileStream和其他IO类。 using System.IO; 步骤2:创建FileStream对象 创建两个FileStream对象,一个用于读取源文件,一个用于写入目标文件。通过创建读写不同的…

    C# 2023年6月1日
    00
  • C#异步编程由浅入深(一)

    下面是“C#异步编程由浅入深(一)”完整攻略的讲解: 异步编程的定义 异步编程(Asynchronous Programming)是指在执行耗时操作时,允许其他操作同时执行的编程方式。它可以让主程序不被阻塞,提高程序的并发能力和响应性能。 异步编程的模型 C#中的异步编程采用任务(Task)模型,它由以下几部分组成: Task的定义 Task是一个基本的异步…

    C# 2023年6月6日
    00
  • C#实现统计字数功能的方法

    下面是“C#实现统计字数的功能”的完整攻略: 一、需求分析 在进行编码之前,我们需要先分析需求,明确要实现的功能。在这个任务中,我们需要实现统计一段文本中包含的字符数和单词数的功能。 字符数的统计比较简单,只需要计算文本长度即可。而对单词数的统计涉及到对文本内容的分词和统计,需要采用一定的算法实现。 二、实现步骤 1. 统计字符数 要统计字符数,首先需要获取…

    C# 2023年6月1日
    00
  • C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)

    C#中调用DLL时未能加载文件或程序集错误的处理方法(详解) 问题描述 在 C# 项目中,如果需要调用其他语言编写的动态链接库(DLL)文件时,有时候会遇到以下错误: System.IO.FileNotFoundException: 未能加载文件或程序集“xxx.dll”或它的某一个依赖项。找到的_manifest中的元素不匹配应用程序清单的类型。 或者类似…

    C# 2023年5月15日
    00
  • C#使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

    序列化是将对象转换为一种格式,以便在需要时可以将其反序列化为原始对象。C#中使用以下三种方式进行序列化和反序列化: BinaryFormatter类:将对象序列化为二进制格式,是.NET中最常用的序列化方式,可以将序列化后的数据存储到磁盘、内存或网络中。 XmlSerializer类:将对象序列化为XML格式,适合在不同平台间传输数据。 ISerializa…

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