C#读取数据库返回泛型集合详解(DataSetToList)

C#读取数据库返回泛型集合是一种常见的数据访问方式,可以快速、高效地将数据库里的数据以泛型集合的方式返回给程序,本文将详细讲解如何使用DataSetToList实现这一功能。

准备工作

在使用DataSetToList读取数据库前,需要进行一些准备工作,具体如下:

1.引用相关命名空间

在代码文件中,需要引用以下命名空间:

using System.Data;
using System.Reflection;
using System.Collections.Generic;

2.定义泛型实体类

定义一个与数据库表相对应的泛型实体类(如Person),其中包含了表中的所有字段,并在类中为每个字段创建相应的属性。

数据库连接与读取

使用DataSetToList读取数据库需要进行数据库连接与读取的操作,具体如下:

1.创建数据库连接对象

创建一个与数据库连接的对象,代码如下:

SqlConnection conn = new SqlConnection("Data Source=.;Database=test;user id=sa;password=123");

2.创建数据库读取命令对象

创建一个数据库读取命令对象Command,通过该对象指定要执行的数据库sql语句,以及与数据库连接对象建立关联。

SqlCommand cmd = new SqlCommand("SELECT * FROM Person", conn);

3.创建数据适配器对象

创建一个数据适配器DataAdapter,用于将数据从数据源读取到DataSet对象中,并存在一个表中。代码如下:

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

4.填充DataSet对象

使用DataAdapter的Fill方法,将数据库表的数据填充到DataSet中,代码如下:

DataSet ds = new DataSet();
adapter.Fill(ds);

DataSetToList转换

将DataSet对象转换为泛型集合,可以使用DataSetToList方法,具体的代码和示例说明如下:

1.定义DataSetToList方法

在代码文件的类中,添加以下方法:

public static List<T> DataSetToList<T>(DataSet ds)
{
    List<T> list = new List<T>();
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        T t = Activator.CreateInstance<T>();
        PropertyInfo[] propertyInfoList = t.GetType().GetProperties();
        foreach (PropertyInfo propertyInfo in propertyInfoList)
        {
            if (ds.Tables[0].Columns.Contains(propertyInfo.Name))
            {
                if (!Convert.IsDBNull(dr[propertyInfo.Name]))
                {
                    propertyInfo.SetValue(t, dr[propertyInfo.Name], null);
                }
            }
        }
        list.Add(t);
    }
    return list;
}

方法DataSetToList()接收一个DataSet对象,返回一个泛型集合List,其中T是被序列化的类。

2.使用DataSetToList方法

代码如下:

public class Program
{
    static void Main(string[] args)
    {
        SqlConnection conn = new SqlConnection("Data Source=.;Database=test;user id=sa;password=123");
        SqlCommand cmd = new SqlCommand("SELECT * FROM Person", conn);
        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        adapter.Fill(ds);

        List<Person> list = DataSetExtensions.DataSetToList<Person>(ds);
        foreach (Person item in list)
        {
            Console.WriteLine(item.ID + "," + item.Name + "," + item.Age);
        }
    }
}

以上就是使用DataSetToList实现C#读取数据库返回泛型集合的完整攻略,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#读取数据库返回泛型集合详解(DataSetToList) - Python技术站

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

相关文章

  • C# async/await任务超时处理的实现

    下面是详细的攻略: 1. 在C#中使用async/await进行异步编程 在C#中,async/await是一种非常方便的异步编程方式。在使用async/await时,必须将方法和函数标记为异步,例如下面的示例代码: private async Task<string> GetDataAsync() { //异步获取数据 //… return…

    C# 2023年5月15日
    00
  • C#定时任务框架Quartz.NET介绍与用法

    C#定时任务框架 Quartz.NET 介绍与用法 Quartz.NET 是一个强大的、开源的定时任务调度框架,它可以用于 C# 编程语言中。 框架介绍 Quartz.NET 与 .NET Framework 完美结合,允许开发人员在自己的应用程序中创建并组织复杂的、企业级的定时任务调度系统。它被广泛应用于金融、电信、物流等领域,可以帮助开发人员在开发定时任…

    C# 2023年5月31日
    00
  • 那些年,我还在学习C# 学习笔记

    那些年,我还在学习C# 学习笔记是一份非常好的学习资料,它不仅记录了作者在学习C#过程中的所学所感,也为初学者提供了非常好的学习入门资料。在这里,我们详细讲解一下如何使用这份笔记作为学习C#的攻略。 了解C#语言 作为一门编程语言,要想运用自如,首先需要了解其语法和特性。那些年,我还在学习C# 学习笔记提供了非常精简的语言说明,包含了C#语言基本语法、数据类…

    C# 2023年5月31日
    00
  • Vs2022环境下安装低版本.net framework的实现步骤

    下面是详细的“Vs2022环境下安装低版本.net framework的实现步骤”的攻略。 环境准备 首先,我们需要准备好以下一些环境: Visual Studio 2022 低版本的 .NET Framework 安装包(例如 .NET Framework 3.5) 安装低版本的 .NET Framework 在 Windows 系统中,打开“控制面板”,…

    C# 2023年6月3日
    00
  • C#开发纽曼USB来电小秘书客户端总结

    C#开发纽曼USB来电小秘书客户端总结 本文基于C#语言开发一个针对Windows系统的小型应用程序——纽曼USB来电小秘书客户端。该程序能够通过识别USB来电设备实现来电提醒、号码白名单管理等功能。 技术要点 本程序使用的技术栈主要包括: C#语言 .NET框架 FTDI USB驱动 WPF UI框架 步骤 1. 准备工作 在开始开发之前,我们需要准备好以…

    C# 2023年6月7日
    00
  • c# 如何使用 My 命名空间

    当你使用 My 命名空间的 C#程序时,你需要执行以下步骤: 步骤1:在程序中引用 My 命名空间 为了使用 My 命名空间,你需要在项目中引用 Microsoft.VisualBasic 和 System 类库。你可以在 Visual Studio 中通过在 Solution Explorer 中右键单击项目,然后选择“引用”添加它们。或者,你可以在代码中…

    C# 2023年6月6日
    00
  • c#实现用SQL池,多线程定时批量执行SQL语句的方法

    实现用SQL池、多线程定时批量执行SQL语句的方法,可以避免单线程执行SQL语句时的性能瓶颈。以下是具体的实现步骤: 步骤一:创建连接池 安装 System.Data.SqlClient NuGet 包,用于创建 SQL Server 数据库连接 。 使用 SqlConnection 类创建一个数据库连接对象,并使用 SqlConnectionStringB…

    C# 2023年5月31日
    00
  • C# File.WriteAllLines – 将字符串数组写入文件

    C#中的File.WriteAllLines方法用于将字符串数组的所有行写入文件。它会自动创建一个新的文件(如果文件不存在),并向该文件中写入所有行。如果文件已存在,则会覆盖该文件的内容。 该方法的完整格式为: public static void WriteAllLines(string path, string[] contents); 其中,path参…

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