Announcement

Collapse
No announcement yet.

Parallelitätsverletzung durch falschen Datentyp?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Parallelitätsverletzung durch falschen Datentyp?

    Hi Leude,

    folgendes Problem:

    Ich hab eine Access-Datenbank mit der Tabelle "tab_umsatz".
    Enthaltene Felder sind: id (LongInteger, Primärschlüssel), datum (Datum, kurz), betrag (Dezimal, Genauigkeit 18, Dezimalstellen 2), notiz (text).

    Ich lese den Inhalt der Tabelle in ein DataGridView und das funktioniert auch alles:
    Code:
    Dim cmdstr As New OleDbCommand("SELECT * FROM tab_umsatz")
    Dim DataAdapter1 As New OleDbDataAdapter(cmdstr)
    Dim DataTable1 As New DataTable
    
    DataAdapter1.Fill(DataTable1)
    DGV.DataSource = DataTable1
    Neue Daten einfügen funktioniert auch einwandfrei.

    Aber wenn ich jetzt Daten im DGV ändere oder lösche und diese Änderungen in die Datenbank übertragen möchte, kommt es zu einer Parallelitätsverletzung.

    Code dafür ist folgender:
    Code:
      Dim cmb as New CommandBuilder(DataAdapter1)
      DataAdapter1.Update(DataTable1)
    Was ich herausbekommen habe ist, das irgendetwas mit dem Feld 'betrag' nicht stimmt.

    Wenn ich nämlich den DataAdapter mit Assistent erstelle und die Option "Vollständige Parallelität verwenden" abwähle schreibt er die Daten in die DB, allerdings löscht er im Feld 'betrag' einfach das Komma.

    Also:
    Inhalt 'betrag' in DB vor Programmstart --> 30
    Inhalt 'betrag' im DGV nach Programmstart --> 30,00
    Inhalt im DGV nach speichern und neu laden --> 3000,00
    und analog Inhalt in DB --> 3000

    Hat jemand ne Idee wie das zustande kommt?

    Danke schonmal!

  • #2
    Hallo

    schau im Forum nach was du unter "typed Datasets" finden kannst - meiner Meinung nach hängt das Problem damit zusammen, jeder Spalte den richtigen Datentyp zuzuweisen.

    zum Beispiel:

    Me.DataGridView.Columns.Item(0).ValueType = GetType(Integer)

    Comment


    • #3
      Hi,

      danke für die Antwort. Funktioniert so leider auch nicht. Hab es gerade nochmal getestet.

      Hab das Problem aber ähnlich gelöst, indem ich parametrisierte Aktionsabfragen geschrieben und den Parametern den richtigen OleDbType zugewiesen hab.
      Jetzt läufts...

      Danke trotzdem
      Phil

      Comment

      Working...
      X