【问题标题】:Strongly Typed DataSets and System.Data.DataRowBuilder?强类型数据集和 System.Data.DataRowBuilder?
【发布时间】:2025-12-09 22:00:01
【问题描述】:

我正在转换一些旧的 V1.1 VB 代码。它使用强类型数据集。然后该人能够执行以下操作:

Dim myDs As NewDataSet = New NewDataSet
Dim myMbrIfcReqRow As NewDataSet.MbrIfcReqRow

我在 C# 中使用 xsd.exe 生成了相同的强类型数据集。但是当我尝试这些相同的陈述时:

NewDataSet myDs = new NewDataSet(); NewDataSet.MbrIfcReqRow myMbrIfcReqRow = new NewDataSet.MbrIfcReqRow();

它说“MbrIfcReqRow 有 1 个参数,但使用 0 个参数调用。”这的确是。它有一个参数 System.DataRowBilder。我该怎么办。它在生成的代码中:

internal MbrIfcReqRow(global::System.Data.DataRowBuilder rb) : 
                base(rb) {
            this.tableMbrIfcReq = ((MbrIfcReqDataTable)(this.Table));

如果我必须重写构造函数,我该怎么做?在哪里做?

【问题讨论】:

    标签: c# strongly-typed-dataset


    【解决方案1】:

    DataRow 对象必须始终与DataTable 关联;你不能直接使用那个构造函数。

    改为调用生成的yourTable.NewMbrIfcReqRow() 方法。

    【讨论】:

    • 我使用的是 DataSet 而不是 DataTable。没有 myDs.NewMbrIfcReqRow() 方法。
    • NewDataSet.MbrIfcReqRow myMbrIfcReqRow = new NewDataSet.MbrIfcReqRow();
    • 我在生成的代码中找到了NewMbrIfcReqRow,但是如何引用它呢?我无法通过 myDs 引用它。
    • NewMbrIfcReqRow 在 NewDataSet.MbrIfcReqDataTable 类中,但我没有,我只有一个数据集。如何获取类型化数据表?
    • @SamGentile:您的类型化数据集类将为每个表提供一个属性。或者只是创建表而不是数据集。