Hi,
bin jetzt schon ein wenig am verzweifeln, da mir der Umstieg von VB6 zu .Net doch einwenig noch schwer fällt.Trotz dicken welzern die ich mir zugelegt habe und seit Wochen schon Studiere.
Ich taste mich Stück für Stück immer näher ran, doch der Zeitaufwand ist enorm.
Ich habe 2 Datenbanken, die ich miteinander vergleichen will Funtioniert soweit ganz gut, wenn ich meine access datenbank darauf einstelle.
Problem bei der Sache ist ich kriege immer diese Fehlermeldung:
[u]Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut.
wenn ich die Werte in die Tabelle einfügen will.
Dim dtPWC As DataTable = dsPWC.Tables("Service Paid")
Dim dtEE As DataTable = dsEE.Tables("Employee")
Dim dtBT As DataTable = dsBT.Tables("RESULT")
For Each cRow_PWC As DataRow In dtPWC.Rows
For Each cRow_EE As DataRow In dtEE.Rows
If cRow_PWC![_Inv_First_Name] IsNot DBNull.Value Then
If cRow_PWC![_Inv_First_Name] = cRow_EE![First_Name] And _
cRow_PWC![_Inv_Last_Name] = cRow_EE![Last_Name] Then
'MessageBox.Show("Datengefunden")
Dim resultSQL As String = "INSERT INTO [T -" & _
"RESULT-REPORT] (ID, _CONTROL_NAME) VALUES (@id," & _
"@_CONTROL_NAME)"
Dim cmdAddResultName As New OleDbCommand(resultSQL, _
connBT)
cmdAddResultName.Parameters.Add("@id", _
OleDbType.Integer, 6, "ID")
cmdAddResultName.Parameters.Add("@_CONTROL_NAME", _
OleDbType.Boolean, 1, "_CONTROL_NAME")
daBT.InsertCommand = cmdAddResultName
Dim rw As DataRow = dtBT.NewRow()
rw("ID") = cRow_PWC!ID
rw("_CONTROL_NAME") = True
dtBT.Rows.Add(rw)
connBT.Open()
daBT.Update(dtBT) '<<<<----------FEHLER MELDUNG
connBT.Close()
ElseIf Not cRow_PWC![_Inv_First_Name] = _
cRow_EE![First_Name] And cRow_PWC![_Inv_Last_Name] = _
cRow_EE![Last_Name] Then
'MessageBox.Show("Keine übereinstimmenden Daten" & _
"gefunden")
Dim resultSQL As String = "INSERT INTO [T -" & _
"RESULT-REPORT] (ID, _CONTROL_NAME) VALUES (@id," & _
"@_CONTROL_NAME)"
Dim cmdAddResultName As New OleDbCommand(resultSQL, _
connBT)
cmdAddResultName.Parameters.Add("@id", _
OleDbType.Integer, 5, "ID")
cmdAddResultName.Parameters.Add("@_CONTROL_NAME", _
OleDbType.Boolean, 1, "_CONTROL_NAME")
daBT.InsertCommand = cmdAddResultName
Dim rw As DataRow = dtBT.NewRow()
rw("ID") = cRow_PWC!ID
rw("_CONTROL_NAME") = False
dtBT.Rows.Add(rw)
connBT.Open()
daBT.Update(dtBT)
connBT.Close()
End If
End If
Next
Next
End Subda es eof and bof nicht mehr gibt sitz ich nun da und............
es soll aus der ersten Datenbank nur geprüft werden, ob der mitarbeiter
existiert, dazu soll die bestehende mitarbeiter datenbank gefragt werden,
ob zu jeden in der DB1 hinterlegten vor-und nachname ein übereinstimmender eintrag in DB2 gefunden werden kann.
wenn einer gefunden wird dann soll dies einfach in einer Tabelle eingetragen werden mit VorgangsID und Ergebnis ja/nein.
eine der schleifen ist bestimmt überflüssig, oder falsch.
ich bin einfach blind und währe sehr dankbar über einen ratschlag.
ich versteh einfach nicht wie die doppellung zustande kommt.
DB1 Tabelle ist Indiziert
Vielen Dank im voraus |