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日

相关文章

  • ASP.NET通过Remoting service上传文件

    下面是关于“ASP.NET通过Remotingservice上传文件”的完整攻略,包含两个示例。 1. RemotingService简介 RemotingService是.NET Framework中的一个类,它提供了一种在应用程序域之间进行远程调用的方式。使用RemotingService,可以将对象的方法暴露给远程客户端,从而实现远程调用。 2. 通过…

    C# 2023年5月15日
    00
  • matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析

    Matplotlib是一个具有强大绘图功能的Python库,其运行时配置(Runtime Configuration,rc)参数rcParams可以设置绘图参数,如字体大小、线条宽度、颜色等,使得Matplotlib绘图更加个性化、符合需求。 rcParams是一个Python字典对象,包含了Matplotlib的所有绘图参数设置。可以通过修改字典中的键值对…

    C# 2023年5月31日
    00
  • ASP.NET CORE读取json格式配置文件

    在ASP.NET Core应用程序中,您可以使用JSON格式的配置文件来存储应用程序的配置信息。本攻略将深入探讨如何读取JSON格式的配置文件,并提供两个示例说明。 读取JSON格式配置文件 读取JSON格式配置文件的步骤如下: 1. 创建JSON格式配置文件 在ASP.NET Core应用程序中,您需要创建JSON格式的配置文件。您可以在appsettin…

    C# 2023年5月17日
    00
  • Java和C#下的参数验证方法

    下面是Java和C#下的参数验证方法的完整攻略: Java下的参数验证方法 在Java中,参数验证通常使用JSR 303/349 Bean Validation规范的注解实现。通过在实体类的属性上标注对应的注解,可以对参数进行各种验证,比如非空、长度、格式等等。这些注解在Java Bean Validation API中已经定义好了。 下面是示例代码: im…

    C# 2023年6月6日
    00
  • 浅谈C#中的for循环与foreach循环

    浅谈C#中的for循环与foreach循环 介绍 在C#语言中,有两种循环结构:for循环和foreach循环。它们被广泛用于遍历和操作数组、集合等数据结构,也是编写控制流程的重要工具。 本文将详细讲解C#语言中的for循环和foreach循环,并通过示例帮助读者理解它们的使用情景和用法。 for循环 for循环结构在C#中有两种常见写法: 第一种写法 fo…

    C# 2023年6月7日
    00
  • unity里获取text中文字宽度并截断省略的操作

    获取Unity中Text组件中文字宽度并截断省略的操作可以使用Unity自带的TextGenerator类来实现。下面是详细攻略: 步骤1:获取Text组件中的文本字符串 首先,我们需要获取到Text组件中的文本字符串,可以通过Text组件的text属性来获取。例如,如果要获取名为“textObject”的Text组件中的文本字符串,可以使用以下代码: st…

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

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

    C# 2023年5月31日
    00
  • C#中使用UDP通信的示例

    当我们需要实现网络通信时,UDP是一个非常好的选择。因为UDP协议比TCP协议要简单,无连接,无需建立连接就可以发送数据包,适用于快速传输数据,对于实时通信的情况比如在线游戏,流媒体等领域的网络通信非常方便。而C#也提供了丰富的UDP相关库和示例,简化了UDP通信的开发难度。 以下是使用C#实现UDP通信的完整攻略: 1. 创建UDP服务器 首先我们需要创建…

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