是否可以将基于类型化DataRow的通用DataRow使用其属性转换回类型化数据行?

问题描述 投票:0回答:1

我有一个充满相似表(许多常见列)的Oracle数据库,可以使用dataSet进行处理。每个表都有一个访问数据库的类,包括扩展方法updateInDatabase()

我想创建一些方法来修改DataRows的公共列并返回通用DataRow。是否可以根据其服装将其转换回带类型的DataRow?我可以看到DataRow仍然保留与其原始类型和表有关的信息。

我猜它看起来像这样:

var typedDataRow = (genericDataRow.GetType())genericDataRow;

我希望获得与以下相同的结果,但在运行时不知道类型:

TypedDataRow typedDataRow = (TypedDataRow)genericDataRow;

当我尝试上述操作时,错误是';预期'

c# datarow
1个回答
0
投票

这样的扩展方法会有所帮助

    public static T ConvertRow<T>(this DataRow row)
    {
        var obj = Convert.ChangeType(row, typeof(T));
        return (T)obj;                
    }

您可以在任何地方使用它;

    TypedDataRow typedDataRow = genericDataRow<TypedDataRow>.ConvertRow()
© www.soinside.com 2019 - 2024. All rights reserved.