Hallo,
ich bin auf der Suche nach einer Möglichkeit die Information des TableNames aus einem Datagrid zu bekommen.
Ich befülle das DataGrid ja nach Menüauswahl mit verschiedenen Tabellen
Wenn ich dann Aktionen, wie z.B. ein Löschen durchführen möchte, wäre es schön den aktuellen TableName wieder auszulesen.
Leider ist der Eintrag immer Leer. Ich helfe mir, indem ich den Namen manuell in einen String eintrage. Eleganter wäre es aber
die Information aus dem DataGrid zurückzuholen.
Ich hoffe, es hat sich schon mal jemand mit dem Problem herumgeschlagen.
Lauf CodeProjekt sollte es funktionieren. Das bezog sich aber auf das Datagrid vor WPF
Grüße Ulf
CodeTags korrigiert ~VaporiZed
ich bin auf der Suche nach einer Möglichkeit die Information des TableNames aus einem Datagrid zu bekommen.
Ich befülle das DataGrid ja nach Menüauswahl mit verschiedenen Tabellen
C#-Quellcode
- case 3: // Adresstypen
- TblAdr = new DataTable();
- SdShow = new SqlDataAdapter(AsSql, dbConnection);
- SdShow.Fill(TblAdr);
- DgrShow.ItemsSource = null;
- DgrShow.ItemsSource = TblAdr.DefaultView;
- LiValue = TblAdr.Rows.Count;
- break;
- case 4: // RisikoKlassen
- TblRisk = new DataTable();
- SdShow = new SqlDataAdapter(AsSql, dbConnection);
- SdShow.Fill(TblRisk);
- DgrShow.ItemsSource = null;
- DgrShow.ItemsSource = TblRisk.DefaultView;
- LiValue = TblRisk.Rows.Count;
- break;
- case 5: // Sprachen
- TblSprachen = new DataTable();
- SdShow = new SqlDataAdapter(AsSql, dbConnection);
- SdShow.Fill(TblSprachen);
- DgrShow.ItemsSource = null;
- DgrShow.ItemsSource = TblSprachen.DefaultView;
- LiValue = TblSprachen.Rows.Count;
- break;
Wenn ich dann Aktionen, wie z.B. ein Löschen durchführen möchte, wäre es schön den aktuellen TableName wieder auszulesen.
Leider ist der Eintrag immer Leer. Ich helfe mir, indem ich den Namen manuell in einen String eintrage. Eleganter wäre es aber
die Information aus dem DataGrid zurückzuholen.
C#-Quellcode
- private void BtnDelete_Click(object sender, RoutedEventArgs e)
- {
- int LiId = 0;
- string LsSql = "";
- // DataTable holen
- DataTable dt = ((DataView)DgrShow.ItemsSource).Table;
- // Tablename holen
- string LsTableName = dt.TableName.ToString();
- // Id holen
- if (DgrShow.SelectedIndex >= 0)
- {
- // Nur wenn der Datensatz schon eine ID hat, wird sie hier für ein Löschen geholt
- if (((DgrShow.Items[DgrShow.SelectedIndex] as DataRowView).Row.ItemArray[0] != DBNull.Value))
- {
- LiId = int.Parse(dt.Rows[DgrShow.SelectedIndex].ItemArray.GetValue(0).ToString());
- if (LiId > 0)
- {
- LsSql = zAuditGetSqlStamm.GetSql(201, LiId, 0, GsTableName, "", dt);
- FetchData(201, LsSql, GsConnect);
- DataRowView row = (DataRowView)DgrShow.SelectedItem;
- dt.Rows.Remove(row.Row);
- TBStatus2.Text = "Datensatz gelöscht";
- }
- }
- }
- }
Ich hoffe, es hat sich schon mal jemand mit dem Problem herumgeschlagen.
Lauf CodeProjekt sollte es funktionieren. Das bezog sich aber auf das Datagrid vor WPF
Grüße Ulf
CodeTags korrigiert ~VaporiZed
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()