Autor Beitrag
mo0n_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win7
C#
BeitragVerfasst: Do 02.02.12 14:42 
Hallo liebes Forum,
Dieser Thread enthällt gleich 2 Probleme. :autsch:
Ich hoffe ihr könnt mir helfen, was eigentlich klar ist, denn bisher habt ihr mich immer mit einer verblüffend einfachen Lösung aus der Schlamassel gezogen.
Folgendes:
(Problem 1)
Habe ein Problem, welches ich euch jetzt so umfangreich wie möglich zu schildern versuche.
Ich habe 2 Forms.
Form A enthällt eine GridView, in der man eine einzelne Zeile Selektieren kann

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            Details dlg = new Details(this.dataGridView1.CurrentRow);
            dlg.ShowDialog();
        }


diese wird an Form B übergeben, welche die Values der CurrentRow in einer Anzahl von TextBoxen ausgibt.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
int y = 91;
           
           for (int i = 1; i < this.dataGridViewRow.Cells.Count; i++)
           {
            TextBox txt = new TextBox();
            txt.BackColor = DefaultBackColor;
            txt.BorderStyle = BorderStyle.None;
            txt.Name = "txt" + i.ToString();
            txt.Location = new Point(209, y);
            txt.Size = new Size(15020);
            txt.Text = this.dataGridViewRow.Cells[i].Value.ToString();
            txt.AutoSize = true;
            this.Controls.Add(txt);
            y += 33;
            }


bis zu diesem Punkt funktioniert alles einwandtfrei.

Nun möchte ich eine oder mehrere Änderungen in einer TextBox unternehmen, und die Änderung abspeichern.
Leider verstehe ich die Syntax des MyTableAdapter.Update Befehls überhautnicht.

nun zu Problem #2
Form B enthällt ein DGV welches via bindingSource seine Daten aus einer Access Datenbank bezieht.
Das klappt auch ganz wunderbar, und auch das hinzufügen neuer datensätze anhand eines buttons funktioniert toll, nur das löschen einer ausgewählten Zeile bereitet mir Probleme.
Habe es mit dem Befehl:

ausblenden C#-Quelltext
1:
 ansprechpartnerTableAdapter.Delete(...);					


versucht, es aber aufgegeben als ich die argumentationssyntax gesehen habe.
Ich weiss, dass ich die "angeklickte" Zeile auslesen kann.
Kann ich die dann nicht einfach mit einem bestimmten Befehl löschen ?

Tut mir Leid für den Roman.
Liebe Grüße
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 02.02.12 15:16 
Übergebe BindingSource.Current an deinen Dialog nicht dataGridView1.CurrentRow. In der anderen Form mit einem dataGridViewRow Element rumzuspielen ist blöd. BindingSource.Current ist eine DataRow
aus deiner DataTable die du vermutlich im Grid anzeigst. Wenn du in deiner Form dann die geänderten Daten in die DataRow zurückschreibst kannst du a.) per Tableadapter.Update(meineDataTable) die Daten in die DB zurückschreiben und hast b.) auch gleich deine Änderungen in der im Grid angezeigten Datenmenge verfügbar.

Wenn du mit einer DataTable/Dataset arbeitest würde ich dir empfehlen grundsätzlich zum ändern von Daten immer über diese DataTable/Dataset zu gehen sonst hast du nachher Problem die Daten synchron zu halten. Der Tableadapter weiß nichts von den DataTables/Datasets die er mit Daten befüllt hat. Wenn du dann direkt über den Tableadapter in der Datenbank änderst bekommen die das nicht mit und du fängst nachher wieder an die Datasets/Datatables überflüssigerweise über irgendeinen weg zu aktualisieren.

Für diesen Beitrag haben gedankt: mo0n_
mo0n_ Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win7
C#
BeitragVerfasst: Do 02.02.12 15:19 
ich versuchs mal, melde dann nochmal den aktuellen status.
mo0n_ Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win7
C#
BeitragVerfasst: Do 02.02.12 17:56 
Zitat:

Übergebe BindingSource.Current an deinen Dialog nicht dataGridView1.CurrentRow. In der anderen Form mit einem dataGridViewRow Element rumzuspielen ist blöd. BindingSource.Current ist eine DataRow


Leider komme ich mit dem Befehl BindingSource.Current nichtmal ansatzweise auf einen grünen Zweig.
Hab alles mögliche gegooglet, was meinen Durcblick nicht klarer sondern eher noch verschwommener gemacht hat.
Könntet ihr einen eher mehr als weniger auf mein Beispiel passenden Codeteil posten, vllt hilft mir das aus der Klemme :gruebel: