Próbuję napisać kilka rozszerzeń, aby przekonwertować UniDataSets
i UniRecords
na DataSet
i DataRow
, ale pojawia się następujący błąd podczas próby kompilacji.Konstruktor DataRow jest niedostępny podczas pisania rozszerzenia DataSet?
„System.Data.DataRow.DataRow (System.Data.DataRowBuilder)” jest niedostępny ze względu na jego poziom ochrony
Czy jest jakiś sposób aby to naprawić czy mam zrezygnować z takiego podejścia i przyjść w inny sposób?
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;
}
}
}
}
nie widzę, gdzie próbujesz użyć tego konstruktora w dowolnym miejscu w tym kodzie? W której linii występuje błąd? –
Linia 17: DataRow dataRow = new DataRow(); – josh