我有一个充满相似表(许多常见列)的Oracle数据库,可以使用dataSet进行处理。每个表都有一个访问数据库的类,包括扩展方法updateInDatabase()
我想创建一些方法来修改DataRows的公共列并返回通用DataRow。是否可以根据其服装将其转换回带类型的DataRow?我可以看到DataRow仍然保留与其原始类型和表有关的信息。
我猜它看起来像这样:
var typedDataRow = (genericDataRow.GetType())genericDataRow;
我希望获得与以下相同的结果,但在运行时不知道类型:
TypedDataRow typedDataRow = (TypedDataRow)genericDataRow;
当我尝试上述操作时,错误是';预期'
这样的扩展方法会有所帮助
public static T ConvertRow<T>(this DataRow row)
{
var obj = Convert.ChangeType(row, typeof(T));
return (T)obj;
}
您可以在任何地方使用它;
TypedDataRow typedDataRow = genericDataRow<TypedDataRow>.ConvertRow()