null 値に問題があります。2 つの値が null かどうかを確認するには、if が必要です。初めてループすると、すべて問題ありません。For を 2 回目にループすると、'oTableTemp.Rows(i)("ProspectielijstId").ToString() = ""' でエラーが発生します。私は絶対にすべてを試しました。DbNull.Value、Is Nothing、を試しました...これは完全なコードです:
For i As Integer = 0 To oTableTemp.Rows.Count - 1 Step 1
If (Convert.ToInt32(oTableTemp.Rows(i)("OpleidingsId")) = 0 And oTableTemp.Rows(i)("ProspectielijstId").ToString() = "" And oTableTemp.Rows(i)("ActieId") = specialeactieId) Then
cString &= "SELECT * FROM AITest..SpecialeActie WHERE SpecialeActie.ActieId = " + clGlobalsData.G_FieldN(specialeactieId)
Exit For
ElseIf (oTableTemp.Rows(i)("ProspectielijstId").ToString() IsNot "" And oTableTemp.Rows(i)("ActieId") = specialeactieId) Then
cString &= " SELECT KlantProspectAlgemeen.Nummer, SpecialeActie.Titel, SpecialeActie.Inhoud, SpecialeActie.Link " & _
"FROM (AITest..SpecialeActie INNER JOIN AITest..t_ProspectieLijst ON t_ProspectieLijst.NaamLijst= " & _
"SpecialeActie.ProspectielijstID) INNER JOIN AITest..KlantProspectAlgemeen ON t_ProspectieLijst.Nummer=KlantProspectAlgemeen.Nummer WHERE SpecialeActie.ActieId = " + clGlobalsData.G_FieldN(specialeactieId)
Exit For
ElseIf (Convert.ToInt32(oTableTemp.Rows(i)("OpleidingsId")) <> 0 And oTableTemp.Rows(i)("ActieId") = specialeactieId) Then
cString &= "SELECT KlantProspectAlgemeen.Nummer, SpecialeActie.Titel, SpecialeActie.Inhoud, SpecialeActie.Link " & _
"FROM (AITest..SpecialeActie INNER JOIN AITest..Cursus ON Cursus.NummerInternCursus=SpecialeActie.OpleidingsID " & _
"INNER JOIN AITest..CursusEmailmarketing ON Cursus.NummerInternCursus = CursusEmailmarketing.NummerInternCursus " & _
"INNER JOIN AITest..t_ProspectieLijst ON t_ProspectieLijst.NaamLijst=CursusEmailmarketing.ProspectielijstID) " & _
"INNER JOIN AITest..KlantProspectAlgemeen ON t_ProspectieLijst.Nummer= KlantProspectAlgemeen.Nummer WHERE SpecialeActie.ActieId = " + clGlobalsData.G_FieldN(specialeactieId)
Exit For
End If
Next
私を助けてください、私は絶望的です..