gpt4 book ai didi

c# - 编写 DataSet 扩展时无法访问 DataRow 构造函数?

转载 作者:太空狗 更新时间:2023-10-29 20:51:36 26 4
gpt4 key购买 nike

我正在尝试编写几个扩展来将 UniDataSetsUniRecords 转换为 DataSetDataRow 但是尝试编译时出现以下错误。

'System.Data.DataRow.DataRow(System.Data.DataRowBuilder)' is inaccessible due to its protection level

有什么方法可以解决这个问题,还是我应该放弃这种方法,换一种方法?

    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

它将使用数据表中的架构信息来创建与其匹配的行。如果您只是尝试单独使用构造函数,那么对象将不知道应该使用什么模式。

关于c# - 编写 DataSet 扩展时无法访问 DataRow 构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com