Benutzer mit den meisten Antworten
Ausgewählten Datensatz vom DataGrid weiterverwenden

Frage
-
Hallo zusammen
Ich bin gerade dabei einen kleine Verwaltungssoftware zu programmieren. Wie ich die Daten ins DG reinbekomme habe ich ja noch irgendwie verstanden, aber komme überhaupt nicht weiter, wenns darum geht die Daten, bei einer Auswahl, weiter zu bearbeiten. Kann mir bitte jemand sagen, wie ich das am besten bewerkstelligen kann.
so binde ich die Daten ans DG:
//Kunden in DataGrid laden ----------- string SQLCommand = "SELECT ID, Firstname, Name, Street, PLZ, Place, Tel FROM dbo.CLIENT;" DBConnection connection = new DBConnection(); //Verbindung herstellen sqlconn = new SqlConnection(connection ); sqlconn.Open(); adapter = new SqlDataAdapter(SQLCommand, sqlconn); DataSet dsClientList = new DataSet(); adapter.Fill(dsClientList, "CLIENT"); sqlconn.Close(); DataTable tblclientList = dsClientList.Tables[0]; DataGridClientList.ItemsSource = tblclientList .DefaultView;
Danke Gezim95
Antworten
-
Hallo,
das DataGrid stellt die SelectedItems-Eigenschaft bereit u die markierten Zeilen auszulesen. Sollte nur eine Zeile markiert sein, kannst du die SelectedItem-Eigenschaft benutzen.Einmal erhälst du eine Auflistung mit Elementen und einmal nur das ausgewählte Element. Da du eine DataView als ItemsSource benutzt, ist jedes Element vom Typ DataRowView. Über die Row-Eigenschaft kannst du die eigentliche Datenzeile abrufen und bearbeiten:
foreach (DataRowView row in DataGridClientList.SelectedItems) { //row ist jetzt eines der markierten Elemente im DG var dataRow = row.Row; var firstName = dataRow.Field<string>("Firstname");//Einen Wert des Datensatzes abfragen (Typ=string, Column=Firstname) dataRow.SetField<string>("Firstname", "Geändert: " + firstName);//Wert in Datensatz setzen (Typ=string, Column=Firstname) }
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Gezim95 Montag, 19. Mai 2014 11:14
Alle Antworten
-
Hallo,
das DataGrid stellt die SelectedItems-Eigenschaft bereit u die markierten Zeilen auszulesen. Sollte nur eine Zeile markiert sein, kannst du die SelectedItem-Eigenschaft benutzen.Einmal erhälst du eine Auflistung mit Elementen und einmal nur das ausgewählte Element. Da du eine DataView als ItemsSource benutzt, ist jedes Element vom Typ DataRowView. Über die Row-Eigenschaft kannst du die eigentliche Datenzeile abrufen und bearbeiten:
foreach (DataRowView row in DataGridClientList.SelectedItems) { //row ist jetzt eines der markierten Elemente im DG var dataRow = row.Row; var firstName = dataRow.Field<string>("Firstname");//Einen Wert des Datensatzes abfragen (Typ=string, Column=Firstname) dataRow.SetField<string>("Firstname", "Geändert: " + firstName);//Wert in Datensatz setzen (Typ=string, Column=Firstname) }
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Gezim95 Montag, 19. Mai 2014 11:14