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

时间:2016-11-09 18:24:40

标签: c# datarow

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

我想创建一些修改DataRows的公共列并返回通用DataRow的方法。是否有可能根据它的属性将其转换回类型化的DataRow?我可以看到DataRow仍然保存与其原始类型和表格相关的信息。

我猜它看起来像这样:

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

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

TypedDataRow typedDataRow = (TypedDataRow)genericDataRow;

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

1 个答案:

答案 0 :(得分:0)

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

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

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

    TypedDataRow typedDataRow = genericDataRow<TypedDataRow>.ConvertRow()