【问题标题】:How to cast a Dataset into Strongly Type Object?如何将数据集转换为强类型对象?
【发布时间】:2010-11-15 17:28:24
【问题描述】:

我在数据集中获得了一些信息,我想将其转换为强类型对象。 例如我的数据集有:

表名:tab_data
行数:1
列:姓名、名字、地址

所以我创建了一个类:

public class Customer
{
public String Name;
public String FirstName;
public String Address;
}

是否有一个魔术技巧可以简单地将我的数据集转换为客户类型?使用 LiNQ 吗?

谢谢,

【问题讨论】:

    标签: c# .net asp.net ado.net dataset


    【解决方案1】:

    以下是如何将数据集转换为强类型对象的示例。在某些情况下,我们通过一些可能不会被强烈打字的其他源将数据变为数据集。但数据集允许我们将数据转换为强类型对象。

     List<Customer> CustomerList =  
                          (from row in ds.Tables[0].AsEnumerable()
                           select new Customer
                           {
                            Name = row.Field<string>("Name"),
                            FirstName = row.Field<string>("FirstName"),
                            Address = row.Field<string>("Address")
                           }).ToList();
    

    【讨论】:

      【解决方案2】:

      你不能投射这个,但是你可以翻译数据...

      1 张桌子的答案可能与 20 张桌子的答案不同;在个人基础上,您应该能够 Select 输出数据(或者,just iterate) - 这将是最快的选择,但如果您有很多表,则需要大量维护。在后一种情况下,某种反射,perhaps like so

      【讨论】:

        【解决方案3】:

        有什么原因你没有创建一个强类型数据集开始?这可能是最简单的解决方案。

        您当然可以将每个 DataTable 转换为(例如)List&lt;Customer&gt;,使用 AsEnumerable 扩展至 DataTable 和投影,如果您真的需要,则从 DataRow 创建一个 Customer

        【讨论】:

          猜你喜欢
          • 2017-10-24
          • 1970-01-01
          • 2019-08-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-20
          • 2012-05-09
          • 1970-01-01
          相关资源
          最近更新 更多