将2组数据集与循环错误进行比较

时间:2013-06-07 06:22:05

标签: .net vb.net

我有两组数据集可以管理存储的data_Before和data_after

我在下面的if语句中尝试做的是检查我的data_after的列是否属于boolean列?如果是,如果有1

,我将不显示数据

但是这里存在问题,我不知道为什么只有1个不同时它至少循环20次,它重复多次分化

For nDsAf_Col As Integer = 0 To pDsAf.Tables(nDsB4_Tables).Columns.Count - 1
                    Dim sChkColName As String =    pDsAf.Tables(nDsB4_Tables).Columns(nDsAf_Col).ColumnName
                    Dim sChkRowData As String = pDsAf.Tables(nDsB4_Tables).Rows(nDsAf_Rows)(sColTableKey).ToString

//问题发生在这里!

                      If sChkColName Is sColTableKey AndAlso sChkRowData IsNot "1" Then
                        '13)Loop pDsAf_Columns, return result as null to something
                        For nTempColAf As Integer = 0 To pDsAf.Tables(nDsB4_Tables).Columns.Count - 1
                            Dim sCol As String = pDsAf.Tables(nDsB4_Tables).Columns(nTempColAf).ColumnName
                            Dim sB4 As String = reportNullData
                            Dim sAf As String = pDsAf.Tables(nDsB4_Tables).Rows(nDsAf_Rows)(nTempColAf).ToString

如果我的data_before与我的data_after不同,请附加字符串

                            If sB4 <> sAf Then
                                returnString += sCol + reportColNameSeperator + sB4 + reportDiffSeparator + sAf + reportColSeperator + Environment.NewLine
                            End If

                        Next
                    End If

                Next

我的data_B4


UID | USER_ACTION | TableKey


1 | EAT | 0


我的数据


UID | USER_ACTION | TableKey


1 | EAT | 1


2 |播放| 0


示例数据

我的预期结果是表键不是1然后显示行数据

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

但是视觉工作室给我的结果是(重复不知道多少次)

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

UID:NULL&gt; 2

USER_ACTION:NULL&gt;播放

2 个答案:

答案 0 :(得分:0)

请检查您是否可以在突出显示的位置给出正确的“表名或表索引”,我认为应该有“pDsAf”中存在的表名,而不是“nDsB4_Tables”

对于nDsAf_Col As Integer = 0 to pDsAf.Tables( nDsB4_Tables )。Columns.Count - 1                     Dim sChkColName As String = pDsAf.Tables( nDsB4_Tables )。列(nDsAf_Col).ColumnName                     Dim sChkRowData As String = pDsAf.Tables( nDsB4_Tables )。行(nDsAf_Rows)(sColTableKey).ToString

答案 1 :(得分:0)

或者你可能在嵌套循环中有错误

对于nTempColAf As Integer = 0 to pDsAf.Tables( nDsB4_Tables )。Columns.Count - 1

你应该尝试做下面的

for r=0 to 1stDS.rowcount
   for col=0 to 1stDS.col_Count
       //now place you condition here Like

       if (1stDS Row Or Column (whatever you want)==2ndDS Row Or Column
         {
          //you code
         }
   Next
 Next