Vb.net 对于每个下一个循环,仅获取第一行数据

Vb.net 对于每个下一个循环,仅获取第一行数据,vb.net,Vb.net,我试图用代码生成器(PDSA)创建的动态SQL数据集中的数据填充数据集。如果我想要第一行数据,或者我使用一个特定的“Where”子句来检索一行数据,我没有问题。但是,当我循环遍历包含四个条目的数据集时,我没有得到四个条目,而是得到了四次第一行。知道为什么吗 代码示例: Dim DS_C as New DS Dim dr_A As DS_C.Tbl_ARow Me.DS_C.Tbl_A.Clear() Dim bo As PDSA.DataLaye

我试图用代码生成器(PDSA)创建的动态SQL数据集中的数据填充数据集。如果我想要第一行数据,或者我使用一个特定的“Where”子句来检索一行数据,我没有问题。但是,当我循环遍历包含四个条目的数据集时,我没有得到四个条目,而是得到了四次第一行。知道为什么吗

代码示例:

Dim DS_C as New DS
Dim dr_A As DS_C.Tbl_ARow               

    Me.DS_C.Tbl_A.Clear()

    Dim bo As PDSA.DataLayer.tbl_BDC = New PDSA.BusinessLayer.tbl_B

    With bo
        .ConnectionString = AppConfig.SQLConnectString
        .SelectFilter = PDSA.DataLayer.tbl_BDC.SelectFilters.All
        .WhereFilter = tbl_BDC.WhereFilters.None
        .Load()
    End With        

    For Each dr As DataRow In bo.DataSet.Tables(0).Rows

        dr_A = DS_C.Tbl_A.NewRow

        With dr_A
            .CustomerID = bo.CustomerID
            .FirstName = bo.FirstName
            .LastName = bo.LastName
            .Street = bo.Street
            .City = bo.City
            .State = bo.State
            .ZipCode = bo.ZipCode
        End With

        DS_C.Tbl_A.AddTbl_ARow(dr_A)

    Next
如果我尝试将其更改为使用dr而不是bo,它将不会接受

我得到:

.CustomerID = dr.CustomerID(CustomerID is not a member of System.Data.DataRow) 
System.InvalidCastException = {"Unable to cast object of type 'System.Data.DataRow' to type 'TblXLMajorPerilsRow'."} 
如果我尝试使用
DS\u C.Tbl\u ARow

For Each dr As DS_C.Tbl_ARow In bo.DataSet.Tables(0).Rows
我得到类型“DS_C.Tbl_ARow”未定义

如果我尝试:

For Each dr As DS.Tbl_ARow In bo.DataSet.Tables(0).Rows 
我得到:

.CustomerID = dr.CustomerID(CustomerID is not a member of System.Data.DataRow) 
System.InvalidCastException = {"Unable to cast object of type 'System.Data.DataRow' to type 'TblXLMajorPerilsRow'."} 

您需要这样访问它:

.CustomerID = dr("CustomerID");

您需要这样访问它:

.CustomerID = dr("CustomerID");

更简洁的表达方式+1。既然我们在VB中:
.CustomerID=dr(“CustomerID”)
@Mrchief,那么VB实际上也允许语法
.CustomerID=dr!CustomerID
,但我相信目前的共识是避免使用这种语法。总之,+1。一种更简洁的表达方式+1。既然我们在VB中:
.CustomerID=dr(“CustomerID”)
@Mrchief,那么VB实际上也允许语法
.CustomerID=dr!CustomerID
,但我相信目前的共识是避免使用这种语法。不管怎样,+1。