首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#反射:从类型化数据集中获取DataRow的字段

在C#中,反射是一种强大的技术,允许您在运行时检查和操作对象的类型、属性和方法。在类型化数据集(如 DataTable 或 DataSet)中,您可以使用反射从 DataRow 对象获取字段。

以下是一个示例,说明如何使用反射从 DataRow 对象获取字段:

代码语言:csharp
复制
using System;
using System.Data;
using System.Reflection;

public class ReflectionExample
{
    public static void Main()
    {
        // 创建一个 DataTable 对象
        DataTable table = new DataTable("ExampleTable");

        // 添加两个列
        table.Columns.Add("Id", typeof(int));
        table.Columns.Add("Name", typeof(string));

        // 添加一行数据
        DataRow row = table.NewRow();
        row["Id"] = 1;
        row["Name"] = "John Doe";
        table.Rows.Add(row);

        // 使用反射获取 DataRow 的字段
        Type dataRowType = row.GetType();
        PropertyInfo[] properties = dataRowType.GetProperties(BindingFlags.Public | BindingFlags.Instance);

        foreach (PropertyInfo property in properties)
        {
            object value = property.GetValue(row, null);
            Console.WriteLine($"{property.Name}: {value}");
        }
    }
}

在这个示例中,我们首先创建了一个 DataTable 对象,并向其中添加了两个列(Id 和 Name)。然后,我们创建了一个 DataRow 对象,并向其中添加了一些数据。

接下来,我们使用反射获取 DataRow 对象的类型,并获取其所有公共属性。然后,我们遍历这些属性,并使用 GetValue 方法获取每个属性的值。最后,我们将属性名称和值打印到控制台上。

在这个示例中,我们使用了 System.Reflection 命名空间中的 PropertyInfo 类来获取 DataRow 对象的属性。然后,我们使用 GetValue 方法获取每个属性的值。

这个示例展示了如何使用反射从 DataRow 对象获取字段。请注意,这个示例仅适用于类型化数据集,因为它们使用 DataRow 对象来表示数据行。对于非类型化数据集,您需要使用其他技术来获取字段。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券