Autor Beitrag
Acorwyn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17

Win 7 Ultimate 32/64 bit, Backtrack 4
C#
BeitragVerfasst: Fr 25.03.11 09:13 
Hey,
dieses mal habe ich ein anderes Problem wo ich in Google auch nichts brauchbare finde.. Ich habe Oberfläche mit C# erstellt und habe es so gemacht das wenn ich auf einen Knopf drücke 3 Tabellen in jeweils 3 XamDataGrids angezeigt werden. Die Tabellen befinden sich in einer Access Datenbank auf meinem Computer. Sie ist nicht Passwort geschützt. Jetzt wollte ich es so machen das wenn ich im XamDataGrid einen Eintrag ändere und auf Enter drücke, er es so auch in der Datenbank speichert.
Ich wäre euch wirklich dankbar wenn ihr mir helfen könnt :)

/edit
Okay.. ich habe mir vorgenommen, es doch erstmal zu schaffen in einer textBox für z.B. fldname01 in meiner Tabelle tbladress die Daten ändern zu können. Also wenn da jetzt Mustermann steht, dann möchte ich das so hinkriegen das ich in der textBox Musterfrau eingebe, auf den Knopf daneben klicke und er es so in der Datenbank speichert.. ich bin schon die ganze zeit am googlen und habe auch bereits etwas gefunden:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
OleDbConnection objOleDbConnection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\hmprak\Documents\prakdb1(backup).accdb; Mode=12");
            objOleDbConnection.Open();
            OleDbCommand objOleDbCommand = objOleDbConnection.CreateCommand();
            objOleDbCommand.CommandText = "UPDATE tbladress SET fldname01='"+textBox3.Text+"' WHERE fldname01 = Mustermann";
            objOleDbCommand.ExecuteNonQuery();
            objOleDbConnection.Close();


Ich hoffe ihr könnt mir hierbei helfen :) weil wenn ich das hinkriege, dann werd ich es auch bestimmt schaffen es in ein Grid einzubinden :)
Danke !
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Fr 25.03.11 13:13 
Hallo,
user profile iconAcorwyn hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden C#-Quelltext
1:
objOleDbCommand.CommandText = "UPDATE tbladress SET fldname01='"+textBox3.Text+"' WHERE fldname01 = Mustermann";					

Dort liegt der Fehler, denn es muss so aussehen:
ausblenden C#-Quelltext
1:
"UPDATE tbladress SET fldname01='"+textBox3.Text+"' WHERE fldname01 = 'Mustermann'";					

Und hier das ganze nochmal etwas schöner und unter Verwendung von Parametern:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\hmprak\Documents\prakdb1(backup).accdb; Mode=12"))
{
  conn.Open();
  using (OleDbCommand cmd = new OleDbCommand("UPDATE tbladress SET fldname01 = @newValue WHERE fldname01 = @oldValue", conn))
  {
    cmd.Parameters.AddWithValue("@newValue", textBox3.Text);
    cmd.Parameters.AddWithValue("@oldValue""Mustermann");
    cmd.ExecuteNonQuery();
  }
}
LG, Marko

Für diesen Beitrag haben gedankt: Acorwyn
Acorwyn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17

Win 7 Ultimate 32/64 bit, Backtrack 4
C#
BeitragVerfasst: Fr 25.03.11 13:34 
DANKE ! :)
Endlich klappt es :)
ich habe da noch eine Frage.
Wie kann ich es so machen das er einen bestimmten Wert ändern ohne das er festgelegt ist. Also nehmen wir an ..
Meine Tabelle heißt tbladress, es geht 2 Zeilen mit jeweils 2 einträgen. Einmal Name und Nachname, und ich möchte jetzt das ich wenn ich es ändere einfach nur das geänderte eingebe und auf den Button klicke :).
Wie geht das ?
oder ist es möglich das ich jeden einzelnen Wert in einer textBox anzeigen lasse und daneben einen Button setze, und wenn ich diesen Button klicke das er das was er in der textBox stehen hat ersetzt ?

/edit

Also .. ich habs glaub ich ein bisschen komisch ausgedrückt. Ich meine das ich jetz in einem XamDataGrid es irgendwie schaffe links daneben einen unterlegten Edit knopf oder sonst irgendwas in der Richtung habe. In dem XamDataGrid kann ich ja auch direkt die Daten ändern und Bestätigen aber das krieg ich nicht hin in die Datenbank einzubinden. Vllt könnt ihr mir da ja nochmal helfen :)
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Fr 25.03.11 18:28 
Hallo,
ja, Du hast Dich wirklich ein bisschen komisch ausgedrückt.
Also, wenn ich Dein Anwendungsfall so sehe, würde ich Dir zu einem O/R-Mapper raten (also DataSet, Entity Framework oder andere). Wobei ich noch Fan vom DataSet bin.

Du könntest bei einem DataSet (der Einfachheit halber) einfach die DataTable als ItemsSource an das DaatGrid binden. Dann kannst Du ganz einfach im DataGrid editieren, und beim Speichern sagst Du einfach dem TableAdapter, dass er die gesamte Table updaten soll, also alle Rows, die in irgendeiner Weise geändert wurden, in der Datenbank auch geändert (bzw. gelöscht oder hinzugefügt) werden.

Wenn Du auch die Funktionalität benötigst, dass im DataGrid neue Datensätze angelegt werden können bzw. auch welche gelöscht werden können, so musst Du das allerdings selber handeln.
Soviel erstmal, Marko
Acorwyn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17

Win 7 Ultimate 32/64 bit, Backtrack 4
C#
BeitragVerfasst: Mo 28.03.11 08:02 
Danke erstmal :)
Ich werde es erstmal ausprobieren :)