我有一个充满类似表(许多常见列)的Oracle数据库,我使用dataSet来处理它。每个表都有一个访问数据库的类,包括扩展方法updateInDatabase()
我想创建一些修改DataRows的公共列并返回通用DataRow的方法。是否有可能根据它的属性将其转换回类型化的DataRow?我可以看到DataRow仍然保存与其原始类型和表格相关的信息。
我猜它看起来像这样:
var typedDataRow = (genericDataRow.GetType())genericDataRow;
我希望得到与以下相同的结果,但不知道运行时的类型:
TypedDataRow typedDataRow = (TypedDataRow)genericDataRow;
当我尝试上述操作时,错误是&#39 ;;预期'
答案 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()