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