【问题标题】:iteration through TableAdapter of a strongly typed DataSet通过强类型 DataSet 的 TableAdapter 迭代
【发布时间】:2013-01-15 19:08:33
【问题描述】:

我们想使用 For-Next 循环逐行遍历 TableAdapter,并从强类型 DataSet 中提取每一行中的列值。

TableAdapter 是在 Visual Studio 数据集设计器中创建的。以下名称已用于数据库对象。

DataSet Name:      DataSetSchedules
DataTable Name:    DataTableSchedules
TableAdapter Name: DataTableDataAdapterSchedules

这是我开始的编码:

Dim strClassName As String = ""
Dim objAadapter As New DataSetSchedulesTableAdapters.DataTableTableAdapterSchedules
Dim objDataTable As DataSetSchedulesTableAdapters.DataTableTableAdapterSchedules

<I need a way to fill the table with data from> = objAadapter.GetDataByAll(TextBoxSearch)

For Each row As System.Data.DataRow In objDataTable
    strClassName = row.ClassName
Next

请提供我们需要的缺失编码,因为我尝试使用:

Dim objDataTable As DataTableSchedules = objAadapter.GetDataByAll(TextBoxSearch)

并显示此错误:

Error 1 Type 'DataTableSchedules' is not defined.

我意识到我可以设置命令对象和 DataReader,但更喜欢使用已经存在的对象。这个问题已经让我们卡了好几天了。

【问题讨论】:

    标签: vb.net iteration strongly-typed-dataset tableadapter


    【解决方案1】:

    如果您键入 DataSetSchedulesTableAdapters.DataTableTableAdapterSchedules 是数据检索部分,您还将拥有一个名为 DataSetSchedules 的类,该类将具有保存您检索的数据以及强类型数据表和数据行的类结构。

    Dim strClassName As String = ""
    Dim objAadapter As New Knowledge_Academy.DataSetSchedulesTableAdapters.DataTableTableAdapterSchedules
    Dim objDataTable As Knowledge_Academy.DataSetSchedules.DataSetSchedulesDataTable
    Dim objDataRow As Knowledge_Academy.DataSetSchedules.DataSetSchedulesRow
    
    objDataTable = objAadapter.GetDataByAll(TextBoxSearch)
    
    For Each objDataRow In objDataTable.Rows
        strClassName = objDataRow.ClassName
    Next
    

    我对此有些猜测,但应该非常接近。

    【讨论】:

    • 谢谢埃里克。我能够使用:Dim objDataTable As DataSetSchedulesTableAdapters.DataTableTableAdapterSchedules ok,我将为此更新发布,但现在我需要一种方法来用数据填充对象并将缺少的编码放在这一行中:对于每一行 As In objDataTable
    • 将 system.data.datarow 放在 For-Next 中有效,但 objDataTable 显示此错误,因为我认为我缺少将数据放入其中的方法:错误 3 表达式的类型为“Knowledge_Academy。 DataSetSchedulesTableAdapters.DataTableTableAdapterSchedules',不是集合类型。
    • 我更新了编码以包含 system.data.datarow。你能展示一下它应该是什么样子的编码示例吗?谢谢。
    • 好的,你有 Knowledge_Academy.DataSetSchedules.DataSetSchedulesTable 或 DataSetSchedulesRow 的选项。我们使用了这样的东西: Dim itemAdapterCart As New DAL.ShoppingCartTableAdapters.GetCartPackageCoursesTableAdapter Dim dtadc As New DAL.ShoppingCart.CartItemsRow
    • 我认为这是来自项目名称。这也是我们用于 SQL Server 数据库的相同名称。在项目的其他部分,我们不需要将其用作选项。
    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2011-11-19
    • 2010-12-21
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多