0

保存されたdata_Beforeとdata_afterを管理する2セットのデータセットを取得しました

以下の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 |テーブルキー


1 |食べる |0


後の私のデータ


UID |USER_ACTION |テーブルキー


1 |食べる |1


2 |再生 |0


サンプルデータ

私の期待される結果は、テーブルのキーが1ではなく、行データを表示することです

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 > 再生

UID: NULL > 2

USER_ACTION: NULL > 再生

4

2 に答える 2

0

または、ネストされたループで間違いがある可能性があります

nTempColAf の場合、Integer = 0 から 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

強調表示された場所で正しい「テーブル名またはテーブル インデックス」を指定していることを確認してください。「nDsB4_Tables」ではなく「pDsAf」にテーブル名が存在するはずです。

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 に答える