c# – DataRow构造函数在编写DataSet扩展时不可访问?
发布时间:2020-12-15 18:35:17 所属栏目:百科 来源:网络整理
导读:我正在尝试编写几个扩展来将UniDataSets和UniRecords转换为DataSet和DataRow但是当我尝试编译时出现以下错误. ‘System.Data.DataRow.DataRow(System.Data.DataRowBuilder)’ is inaccessible due to its protection level 有没有办法解决这个问题,还是应该
我正在尝试编写几个扩展来将UniDataSets和UniRecords转换为DataSet和DataRow但是当我尝试编译时出现以下错误.
有没有办法解决这个问题,还是应该放弃这种方法并采用不同的方式? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using IBMU2.UODOTNET; namespace Extentions { public static class UniDataExtentions { public static System.Data.DataSet ImportUniDataSet(this System.Data.DataSet dataSet,IBMU2.UODOTNET.UniDataSet uniDataSet) { foreach (UniRecord uniRecord in uniDataSet) { DataRow dataRow = new DataRow(); dataRow.ImportUniRecord(uniRecord); dataSet.Tables[0].ImportRow(dataRow); } return dataSet; } public static void ImportUniRecord(this System.Data.DataRow dataRow,IBMU2.UODOTNET.UniRecord uniRecord) { int fieldCount = uniRecord.Record.Dcount(); // ADD COLUMS dataRow.Table.Columns.AddRange(new DataColumn[fieldCount]); // ADD ROW for (int x = 1; x < fieldCount; x++) { string stringValue = uniRecord.Record.Extract(x).StringValue; dataRow[x] = stringValue; } } } } 解决方法
无论是扩展方法还是任何方法都无关紧要. DataRow构造函数不可公开访问.您需要使用DataTable.NewRow()方法来创建新的DataRow.
它将使用数据表中的架构信息来创建与其匹配的行.如果你只是试图在它自己的构造函数上使用,那么对象就不知道应该使用什么模式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |