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# SendKeys使用方法介绍

    C#中的SendKeys提供了一种模拟按键的方法。它可以被用于许多场合,例如在自动化测试中,或者模拟用户输入等方面。下面是该方法的使用方法介绍: SendKeys方法 public static void SendKeys(string keys); SendKeys方法可以将一系列符号或字符串发送到当前活动窗口。 参数 keys:要发送的符号或字符串。 示…

    C# 2023年6月7日
    00
  • C#实现动态显示及动态移除图片方法

    C# 实现动态显示及动态移除图片方法的攻略分为以下几个步骤: 1.准备工作 确定需要在哪个窗体中显示图片,并且在该窗体中添加相应的控件,例如 PictureBox 控件。此外,还需要准备好预先保存好的图片文件。 2.动态显示图片 要动态显示图片,需要将图片文件加载到 PictureBox 控件中。可以使用以下代码: PictureBox pictureBox…

    C# 2023年5月15日
    00
  • 使用C#实现读取系统配置文件的代码实例讲解

    使用C#可以方便地读取系统配置文件,下面是一个完整的攻略,包含了读取系统配置文件的代码实例。 目录 探索系统配置文件 什么是系统配置文件 使用C#读取系统配置文件的代码实例 示例说明 探索系统配置文件 在计算机系统中,配置文件是一种文本文件,其中包含用于配置操作系统、应用程序或其他软件的参数和设置。此类文件通常与特定的应用程序或系统设置相关联。 什么是系统配…

    C# 2023年5月31日
    00
  • C#实现注册码注册机制效果详解

    C#实现注册码注册机制效果详解 前言 软件开发中,为了保护版权以及控制软件的使用,常常会实现注册码注册机制。注册码是一种防止未经授权使用的方法,通常包含在软件终端用户许可协议(EULA)中。相比于硬件狗等物理限制措施,注册码的实现更为灵活,且开发成本更低。 本篇文章主要讲解如何使用C#实现注册码注册机制。 步骤 1. 生成注册码 首先,需要选择一种生成注册码…

    C# 2023年6月6日
    00
  • 基于C#实现屏幕桌面截图

    下面是基于C#实现屏幕桌面截图的完整攻略。 概述 屏幕截图是一种常见的软件功能,可以用于捕捉屏幕上的图片,可以用于制作教程、演示文稿等。在本篇攻略中,我们将使用C#实现屏幕截图功能。具体来说,我们将使用System.Drawing命名空间下的相关类,实现对桌面的截图。 实现步骤 步骤1:创建C#控制台应用程序 打开Visual Studio,选择“创建新项目…

    C# 2023年6月6日
    00
  • c#判断操作系统位数的示例分享

    感谢您对c#判断操作系统位数的感兴趣,下面是一个详细的攻略: 1. 背景知识 在编写程序时,我们需要知道操作系统的位数以确定程序的编译选项。64位操作系统的效率和安全性高于32位操作系统,因此我们需要通过代码来判断操作系统是32位还是64位。 2. 简单方法 使用Environment.Is64BitOperatingSystem方法可以判断操作系统是否为6…

    C# 2023年6月3日
    00
  • C#中的程序集和反射介绍

    下面我将详细讲解“C#中的程序集和反射介绍”的完整攻略。 什么是程序集 程序集是指包含在一个单独文件中的、可执行的代码集合。在.NET中,程序集分为两种类型:可执行文件(.exe)和动态链接库文件(.dll)。程序集具有版本控制、程序入口点、程序集名称、语言支持、资源文件和程序集清单等特性。 程序集有两种:可托管程序集和非托管程序集。可托管程序集是指含有CI…

    C# 2023年6月1日
    00
  • 基于C#实现的木马程序实例详解

    基于C#实现的木马程序实例详解 本文将介绍如何使用C#编写一个基本的木马程序。木马程序可以在用户不知情的情况下窃取他们的信息、操纵他们的计算机等。我们不鼓励使用木马程序进行非法的活动,但是对于理解计算机安全和保护计算机安全有很大帮助。 初学者指南 在开始编写你的木马程序之前,请确保你已经掌握了以下技能: 熟悉C#的基本语法和面向对象的编程思想 对于计算机网络…

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