.Net C#编写高效转换SqlDataReader为实体对象的方法

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

在C#编程中,SqlDataReader是常用的数据源之一,用来读取和处理SQL Server中的大量数据。而在实际开发中,通常将数据以实体对象的形式进行操作和管理。因此,将SqlDataReader转换为实体对象是非常必要的。本文将介绍使用C#来实现这个过程。

1. 创建实体对象
首先,需要创建实体对象,这些实体对象代表数据表中的数据记录。例如,如果有一个名为`Employee`的数据表,其中包含`Name`(string)、`Age`(int)和`Gender`(bool)三个字段,可以创建一个名为`EmployeeModel`的实体类,如下所示:

public class EmployeeModel
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool Gender { get; set; }
}

2. 定义转换方法

接下来,需要定义一个将SqlDataReader转换为实体对象的方法。该方法需要获取一个SqlDataReader作为输入参数,并返回一个实体对象。

public static T ConvertSqlDataReaderToEntity<T>(SqlDataReader reader) where T : new()
{
    T entity = new T();

    foreach (var prop in typeof(T).GetProperties())
    {
        if (prop.GetGetMethod().IsVirtual)
        {
            continue;
        }

        if (HasColumn(reader, prop.Name))
        {
            object value = reader[prop.Name];
            if (value != DBNull.Value)
            {
                prop.SetValue(entity, value);
            }
        }
    }

    return entity;
}

private static bool HasColumn(SqlDataReader reader, string columnName)
{
    for (int i = 0; i < reader.FieldCount; i++)
    {
        if (reader.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase))
        {
            return true;
        }
    }
    return false;
}

3. 调用转换方法
现在,我们已经定义了将SqlDataReader转换为实体对象的方法,我们只需要将SqlDataReader作为参数传递给该方法即可。

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    SqlCommand command = new SqlCommand("SELECT * FROM Employee", connection);

    using (SqlDataReader reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            EmployeeModel employee = ConvertSqlDataReaderToEntity<EmployeeModel>(reader); // 将SqlDataReader转换为EmployeeModel实体对象
        }
    }
}

以上就是将SqlDataReader转换为实体对象的整个过程。通过这种方式,我们可以更加便捷地进行数据操作和管理,提高项目开发的效率和可维护性。


附件:下载该文件资源,减少时间成本(增值服务)
.net c# DataTable转List集合
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
文件部分展示图(单击放大)
.net c# DataTable转List集合.net c# DataTable转List集合
留言
该资源可下载
File Source
0
最新结算
股权转让协议意向书模板
类型: .docx 金额: CNY 2.23¥ 状态: 待结算 详细>
股权转让协议意向书模板
类型: .docx 金额: CNY 0.28¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 2.39¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 0.3¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章