ORA-00001 Fehler beim DB-Update

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    ORA-00001 Fehler beim DB-Update

    Hallo liebe Community :)

    Ich suche mir aus einer Fahrzeugdatenbank mittels SELECT-Befehl eine Eintrag raus, kopiere diesen und ändere 4 Spalten um.
    2 dieser Einträge sind die PK´s. Der ORA-00001 Fehler besagt doch eigentlich, dass es doppelte Einträge gibt, oder lieg ich da falsch?

    Hier mein Code...

    VB.NET-Quellcode

    1. Dim connection As New OdbcConnection("DSN=vaudis;UID=vaudis;PWD=vaudis")
    2. Dim adapter As New OdbcDataAdapter("select * from VF_FZA0000 WHERE Company = 610 AND Auftragsnummer= " & tb_von.Text, connection)
    3. connection.Open()
    4. adapter.Fill(DS)
    5. dt = DS.Tables(0)
    6. Dim dt_copy As DataTable
    7. dt_copy = dt.Copy()
    8. For Each row As DataRow In dt_copy.Rows
    9. row("Auftragsnummer") = tb_auf.Text
    10. row("Company") = "615"
    11. row("ID") = row("ID") + 100000000
    12. row("Status") = "42"
    13. Next
    14. For i = 0 To dt.Rows.Count - 1
    15. dt.Rows(i).SetAdded()
    16. Next
    17. dt.Merge(dt_copy)
    18. dgv.DataSource = dt_copy
    19. Dim builder As OdbcCommandBuilder = New OdbcCommandBuilder(adapter)
    20. adapter.Update(dt)
    21. connection.Dispose()
    22. connection.Close()
    Das sieht mir alles sehr abenteuerlich aus, genaueres kann ich nicht sagen, weil ich nie auf diese untypisierte Weise arbeite, sondern immer nur mit typisierten Datasets.
    Und ich kopiere und merge auch keine Datatables herum, und wechsel DGV-Sources aus, sondern ich hab immer genau ein typisiertes Dataset, in dem die Daten verarbeitet werden.
    Und pro Tabelle einen DataAdapter für befüllen und rückspeichern, und auch den erstelle ich nur einmal, und benutze ihn halt bei jedem Zugriff erneut.

    Egal - also was bei dir absolutely NoGo ist, ist deine Offenheit für Sql-Injection

    ErfinderDesRades schrieb:

    Das sieht mir alles sehr abenteuerlich aus, genaueres kann ich nicht sagen, weil ich nie auf diese untypisierte Weise arbeite, sondern immer nur mit typisierten Datasets.
    Und ich kopiere und merge auch keine Datatables herum, und wechsel DGV-Sources aus, sondern ich hab immer genau ein typisiertes Dataset, in dem die Daten verarbeitet werden.
    Und pro Tabelle einen DataAdapter für befüllen und rückspeichern, und auch den erstelle ich nur einmal, und benutze ihn halt bei jedem Zugriff erneut.

    Egal - also was bei dir absolutely NoGo ist, ist deine Offenheit für Sql-Injection


    blöde Frage, aber wie würdest du dass denn machen?
    Sag ich doch: mit typDatasets, bzw um genau zu sein: mit genau einem typisierten Dataset als einzigem, redundanzfreien Datenmodell.
    Und v.a. würde ich erstmal ohne Db entwickeln, das geht nämlich auch, und zwar viel einfacher.
    Und dabei gibts erstmal die Möglichkeiten kennenzulernen, die ein typDataset dir bietet - kleiner Einblick: vier Views-Videos

    Wie gesagt: nur ein Einblick zum Appetit machen, denn das zu können erfordert einige Vorraussetzungen: Datenverarbeitungs-Vorraussetzungen - Hier sind auch die Tuts gelistet, wie man auch ohne Db Daten speichert und lädt, und noch einiges mehr.