vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Güldner1
Datum: 21.12.18 14:03

Hallo,

ich möchte dass sobald sich ein der WErt einer Zelle in einem DGV ändert, dieser in die Datenbank abgespeichert wird. hier mein Code

Private Sub datagridview1_change(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged

Me.DataGridView1.Rows(0).Cells("Werte").Value = Me.DataGridView1.Rows(0).Cells(7).EditedFormattedValue


Feldname = "Werte"
speichern(Feldname)

End SubDabei passiert folgendes. Wenn ich z. B. 5 Datensätze in dem DGV habe und in der Spalte "Werte" die Werte 1, 2,3,4,5 eingebe, dann werde nur die ersten 4 Werte bei erneuten Aufrufen des DGV angezeigt.
Ich habe in den Foren was mit Edited Formatted Value gelesen. Aber es funzt nicht.

Besten Dank für Eure Hilfe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Manfred X
Datum: 21.12.18 14:33

Hallo!

Was genau machst Du? Wie greifst Du auf die Datenbank zu?

Prinzipiell: Du mußt sicher stellen, daß vor dem Update
der Datenbank der Editmodus der Grid-Zelle beendet worden ist
(und deshalb ggf. das Datenbindungs-Management die Übertragung
des neuen Wertes in die Datenquelle durchgeführt hat.

Allerdings erscheint es mir kontraproduktiv, nach jeder Wertänderung
ein Update der Datenbank durchzuführen. Bei ADO.Net sind andere
Strategien vorzuziehen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Güldner1
Datum: 21.12.18 18:06

Hallo Manfred,
danke erstmal.

Wie beende ich den EditModus der Grid zelle?

Besten Dank im Voraus für Deine Rückmeldung
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Manfred X
Datum: 21.12.18 22:28

Hallo!

Das Datagridview-Control und die Bindingsource-Klasse
verfügen über eine "EndEdit"-Methode, bei deren Aufruf
der aktuelle Editiervorgang abgeschlossen und die
Daten aktualisiert werden.
Falls dabei Fehler auftreten (z.B. Eingabe "unzulässiger" Daten)
wird das Error-Event ausgelöst.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Güldner1
Datum: 25.12.18 10:52

Hallo erstmal allen frohe Weihnachten.

Es klappt immer noch nicht. Es muss doch möglich sein, dass sobald ich einen Wert in eine Zelle des Datagrid eingebe, z. b. eine 1 oder 2 oder 3 etc, dass dieser Wert dann in die Datenbank gespeichert wird.

Ich habe den Code mit einem Haltepunkt überprüft. Die Variable Gelspr wird nie mit dem aktuellen Zellwert befüllt. Sie ist leer...Warum??
Der Update Code funktioniert. Wenn ich Gelspr z.B. fest einen Wert zuordne, dann wird er in die Datenbank geschrieben. .

Peils nicht. Woran hakt es?

Freue mich auf Eure Posts.

    Private Sub DataGridView1_CellEndEdit(sender As Object, e As _
      DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
 
 
        Me.DataGridView1.RefreshEdit()
        Dim GelID As String = DataGridView1.Rows(e.RowIndex).Cells( _
          "gelldfnr").Value
        Dim Gelspr As String = DataGridView1.Rows(e.RowIndex).Cells( _
        e.ColumnIndex).Value.ToString
 
        Dim cmd3 As New SqlCommand("Update Gelände Set F02 =@p1 where gelldfnr" & _
          "= @pIndex", con)
 
        cmd3.Parameters.Add("@pindex", SqlDbType.BigInt).Value = GelID
        cmd3.Parameters.Add("@p1", SqlDbType.NChar, 10, "F02").Value = Gelspr
 
        Me.DataGridView1.EndEdit()
 
        con.Open()
        cmd3.ExecuteNonQuery()
        con.Close()
 
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: effeff
Datum: 25.12.18 12:13

Also...

Normalerweise holst Du Dir die Daten aus der Datenbank und schreibst sie in eine DataTable, die entweder Standalone oder in einem DataSet ist. Datenänderungen werden dann mit einem einfachen ".Update" in der Datenbank gespeichert.

Anscheinend schreibst Du die Daten aus der Datenbank aber direkt ins DataGridView - und das ist falsch.

Richtige Vorgehensweise: Aus der Datenbank mittels Abfrage eine DataTable füllen, die DataTable als DataSource des DataGridviews angeben und dann die zur Verfügung stehenden Möglichkeiten nutzen.

Wo kommen Deine Daten her? SQLServer? Access-DB?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Güldner1
Datum: 26.12.18 09:08

Hallo EffEff,

genauso mache ich es. Die Daten sind aus einem SQL Server und werden als Datatable über ein entsprechendes SQL Statement geholt...Das Datatable binde ich dann als Datasource an das Grid...
Ich habe auch mal gelesen, dass man mit nicht mit Value sondern mit FormattedValue arbeiten soll. Aber dass hat auch nichts gebracht.


Bin ich den anscheined der einzige der dieses Problem bzw. Aufgabenstellung hat.

Nochmals vielen Dank im Voraus für Eure Mithilfe.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: effeff
Datum: 26.12.18 22:04

Gut. Es sollte nun reichen:

DataGridView.EndEdit
DataTable.AcceptChanges
DataAdapter.Update(DataTable)

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Manfred X
Datum: 27.12.18 08:38

Hallo!

VORSICHT!

Die AcceptChanges-Methode bewirkt, daß vom Benutzer oder per Code
geänderte oder hinzugefügte Datensätze in der Datatable als "unverändert"
(Rowstate: unchanged) markiert werden, d.h. es erfolgt KEIN Update der
Datenbank für diese Datensätze !!
Im Dialog gelöschte Datensätze werden aus der Datatable entfernt,
bleiben aber beim Update in der Datenbank erhalten!!

Beitrag wurde zuletzt am 27.12.18 um 08:42:50 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cell value Changed in Datagridview / Update Datenbank klappt nicht 
Autor: Güldner1
Datum: 27.12.18 08:58

Hallo Manfred, Hallo EffEff,

vielen Dank für Euer Update. Hatte heute Früh noch einen Geistesblitz. Mein Code funktioniert jetzt, so wie ich ihn am 26.12. gepostet hatte. Was habe ich gemacht. An dem Grid sind noch einige andere Private Sub angedockt. Eine davon ist Handles Datagridview.EditingControlShowing. Diese Privete Sub hat die die Sub Datagridview.CellEndEdit augegabelt.

Da ich den Code aktuelle nicht mehr durch EditingControlShowing durchlaufen lasse, funktioniert es mit dem direkten Update.

Danke und allen einen guten Rutsch.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel