0

我有 2 组数据集,它们管理存储的 data_Before 和 data_after

我在下面的 if 语句中试图做的是检查我的 data_after 列是否属于布尔列?如果是,我不会显示数据,如果有 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

我的数据_B4


UID |USER_ACTION |TableKey


1 |吃 |0


我的数据之后


UID |USER_ACTION |TableKey


1 |吃 |1


2 |播放 |0


示例数据

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

UID:NULL > 2

USER_ACTION: NULL > 播放

但是visual studio给我的结果是(重复了不知道多少次)

UID:NULL > 2

USER_ACTION: NULL > 播放

UID:NULL > 2

USER_ACTION: NULL > 播放

UID:NULL > 2

USER_ACTION: NULL > 播放

UID:NULL > 2

USER_ACTION: NULL > 播放

UID:NULL > 2

USER_ACTION: NULL > 播放

UID:NULL > 2

USER_ACTION: NULL > 播放

UID:NULL > 2

USER_ACTION: NULL > 播放

4

2 回答 2

0

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

For 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
于 2013-06-07T08:51:01.737 回答
0

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

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

于 2013-06-07T08:40:56.167 回答