`
net_liu
  • 浏览: 232650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DataTable转泛型

C# 
阅读更多

DataTable转泛型

 

 

public class DataHelper
    {
       
/// <summary>
       
/// 多个DataRow转换泛型集合
       
/// </summary>
       
/// <typeparam name="T"></typeparam>
       
/// <param name="rows"></param>
       
/// <returns></returns>
        public static List<T> ConvertTo<T>(List<DataRow> rows) { List<T> list = null;

           
if (rows != null)
            {
                list
= new List<T>();

               
foreach (DataRow row in rows)
                {
                    T item
= CreateItem<T>(row);
                    list.Add(item);
                }
            }

           
return list;
        }

       
/// <summary>
       
/// Table转List
       
/// </summary>
       
/// <typeparam name="T"></typeparam>
       
/// <param name="table"></param>
       
/// <returns></returns>
        public static List<T> ConvertTo<T>(DataTable table)
        {
           
if (table == null)
            {
               
return null;
            }

            List
<DataRow> rows = new List<DataRow>();

           
foreach (DataRow row in table.Rows)
            {
                rows.Add(row);
            }

           
return ConvertTo<T>(rows);
        }

       
public static T CreateItem<T>(DataRow row)
        {
            T obj
= default(T);
           
if (row != null)
            {
                obj
= Activator.CreateInstance<T>();

               
foreach (DataColumn column in row.Table.Columns)
                {
                    PropertyInfo prop
= obj.GetType().GetProperty(column.ColumnName);
                   
try
                    {
                       
if (prop != null && prop.CanWrite)
                        {
                           
object value = row[column.ColumnName];
                           
if (value != DBNull.Value)
                            {
                                prop.SetValue(obj, value,
null);
                            }
                        }
                    }
                   
catch (Exception ex)
                    {
                       
// You can log something here  
                        throw;
                    }
                }
            }

           
return obj;
        }
    }



分享到:
评论

相关推荐

    .net 中datatable与list泛型实体对象的互相转换

    非常方便的datatable类型与List泛型实体对象集合的互相转换,在面向对象的开发中,经常会用到的,如使用上不懂可以咨询我

    C#将DataTable转化为List&lt;T&gt;

    在C#开发中,将DataTable转换为List泛型集合是一个常见的需求,特别是在使用三层架构进行网站开发时,我们可能会从数据访问层获取一个DataTable对象,然后需要将其转换为一个强类型的List集合以便在业务逻辑层或表示...

    .net 将datatable转换为实体类LIST

    将datatable转换为实体类LIST,运用了反射和泛型的技术

    DataTable转List

    利用反射和泛型 把Datatable转化为List 1

    C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法。分享给大家供大家参考。具体如下: 代码如下:///    /// 酒店评论列表-分页  ///   /// ”userId”&gt;  /// ”pageIndex”&gt;当前页  /// ”pageCount”...

    【ASP.NET编程知识】C#将DataTable转化为ListT.docx

    在实现将DataTable对象转换为List对象时,使用泛型可以实现类型安全。使用`where T : class, new()`约束可以确保T类型是类类型,并且可以实例化。 6. 优化性能 在将DataTable对象转换为List对象时,需要优化性能。...

    IList转换为DataTable

    这里定义了一个名为`ParseToDataTable`的公共方法,它接受一个泛型参数`T`以及一个泛型列表`IList&lt;T&gt;`作为输入参数,并返回一个`DataTable`对象。 2. **创建DataTable实例**: ```csharp DataTable dt = new ...

    c#的datatable转list示例

    在这个示例中,`ToList&lt;TResult&gt;`方法接收一个`DataTable`对象`dt`作为参数,并通过泛型约束`where TResult : class, new()`确保`TResult`是一个可实例化的类。然后,它使用反射获取`TResult`的所有公共属性,并找到...

    C#中将DataTable转化成ListT的方法解析

    泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行。当涉及到两者之间的转换时,就显得有些较为繁琐。这个其中的问题主要在两者的存储方式...

    List转DataTable并导出为Excel

    在.NET开发环境中,经常需要处理各种数据集合,例如List对象,然后将其转化为表格格式,比如DataTable,以便于进一步的数据操作,比如...以上就是关于"List转DataTable并导出为Excel"的相关知识点,希望对你有所帮助。

    NPOI 导入导出Excel (List泛型版)

    NPOL网上有返回DataTable,我自己编写了个泛型版的。

    c# 对DataTable各种常用操作的源代码

    附件包括 c# 对 DataTable各种常用操作的源代码 包括DataTable按起始位置和移动及移动方向进行移动并返回新的DataTable ;根据条件过滤表 ;返回两个表的关联数据,关联后的表中只...将Datatable封装成泛型 等各种函数

    List泛型和DataSet

    在IT行业中,尤其是在进行数据处理和管理时,`List泛型` 和 `DataSet` 是两个非常重要的概念。它们都是在.NET框架中广泛使用的数据结构,各自有着特定的应用场景和优势。 首先,我们来深入理解一下`List泛型`。泛型...

    C#实现DataTable转换成IList的方法

    为了将`DataTable`转换为`IList&lt;T&gt;`,我们需要创建一个新的泛型类,这里以`TBToList&lt;T&gt;`为例,其中`T`代表我们需要转换的目标对象类型。这个类需要包含一个`ToList`方法,该方法接收一个`DataTable`对象并返回一个`...

    ExcelHelper.cs

    Excel导入导出帮助类,支持将DataTable、泛型集合导出到Excel,支持office全版本。

    IList转成DataTable和DateSet的类

    这里的T代表了IList中的元素类型,这使得转换方法具有泛型,可以处理任何实现了IList接口且具有公共属性的对象。 通过以上代码,我们可以灵活地将IList对象转换为适合数据库操作和数据绑定的DataTable和DataSet。在...

    DataTable与实体类互相转换

    下面将详细介绍如何实现DataTable与实体类之间的互相转换,并探讨相关的泛型类设计。 首先,让我们理解DataTable。DataTable是一个内存中的数据表,它可以独立于数据库存在,也可以作为DataSet的一部分。它包含了列...

    c# DataTable与不同结构实体类转换的方法实例

    为了高效地将 `DataRow` 转换为 `Person` 对象,我们可以创建一个静态类 `DataConvert`,并使用泛型方法 `ToEntity`: ```csharp public static class DataConvert&lt;T&gt; where T : new() { public static T ToEntity...

    C# DataTable 源码分析

    `List&lt;T&gt;`是泛型集合,提供了强类型的安全性和更好的性能,而`ArrayList`是.NET Framework早期版本的非泛型集合,兼容性较好但效率略低。 `MyList.cs`和`MyCollections.MyDataTable.csproj`可能是个人实现的列表类...

    C#中的DataSet、string、DataTable、对象转换成Json的实现代码

    代码中还有一个`ListToJson&lt;T&gt;`方法,用于将泛型列表转换为JSON。这个方法通过反射获取对象类型,并创建JSON表示: ```csharp public static string ListToJson(IList&lt;T&gt; list, string typeName) { var ...

Global site tag (gtag.js) - Google Analytics