Wie finde ich eine Zeile in einem DataSet/DataTable in C#, wenn die ID bekannt ist?

Antwort

Um eine Zeile (Row) aus einer `DataTable` in C# anhand einer bekannten ID zu finden, kannst du die Methode `Select` oder die Methode `Rows.Find` verwenden. Hier sind beide Varianten: **Variante 1: Mit `Select`** ```csharp // Angenommen, deine DataTable heißt "table" und die Spalte mit der ID heißt "Id" int gesuchteId = 42; DataRow[] gefundeneZeilen = table.Select($"Id = {gesuchteId}"); if (gefundeneZeilen.Length > 0) { DataRow zeile = gefundeneZeilen[0]; // Zugriff auf die Zeile möglich } else { // Keine Zeile mit dieser ID gefunden } ``` **Variante 2: Mit `Rows.Find` (nur wenn die ID-Spalte ein Primärschlüssel ist)** ```csharp // Primärschlüssel muss gesetzt sein: table.PrimaryKey = new DataColumn[] { table.Columns["Id"] }; int gesuchteId = 42; DataRow zeile = table.Rows.Find(gesuchteId); if (zeile != null) { // Zugriff auf die Zeile möglich } else { // Keine Zeile mit dieser ID gefunden } ``` **Hinweis:** - Bei `Select` ist die Rückgabe ein Array, da theoretisch mehrere Zeilen gefunden werden könnten. - Bei `Find` wird direkt die Zeile zurückgegeben, aber die Spalte muss als Primärschlüssel definiert sein. **Weitere Infos:** - [DataTable.Select-Dokumentation (Microsoft)](https://learn.microsoft.com/de-de/dotnet/api/system.data.datatable.select) - [DataRowCollection.Find-Dokumentation (Microsoft)](https://learn.microsoft.com/de-de/dotnet/api/system.data.datarowcollection.find) Falls du LINQ verwenden möchtest, geht es auch so: ```csharp using System.Linq; int gesuchteId = 42; DataRow zeile = table.AsEnumerable().FirstOrDefault(row => row.Field<int>("Id") == gesuchteId); if (zeile != null) { // Zugriff auf die Zeile möglich } ``` Damit kannst du flexibel und effizient nach einer Zeile mit einer bestimmten ID suchen.

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Wie kann man in einer PrimeFaces DataTable filtern?

In PrimeFaces kannst du in einer DataTable das Filtern sehr einfach aktivieren. Dazu nutzt du das Attribut `filterBy` in der Spalte (`<p:column>`), die gefiltert werden soll. Zusätzlich kan... [mehr]

Wie ändert man Werte einer bestehenden DataRow in C#?

Um die Werte einer bestehenden `DataRow` in C# zu ändern, greifst du auf die Spalten der Zeile zu und weist ihnen neue Werte zu. Das geht entweder über den Spaltennamen oder den Spaltenindex... [mehr]

Wie lese ich eine Zeile aus einer Tabelle aus, wenn die ID bekannt ist?

Um aus einer Dataset- oder Tabellendatenstruktur eine Zeile anhand einer bekannten ID auszulesen, kommt es darauf an, welche Programmiersprache oder welches Tool du verwendest. Hier sind einige Beispi... [mehr]

Wie aktualisiere ich ein DataSet in C#?

Um ein Dataset in C# zu aktualisieren, gehst du typischerweise wie folgt vor: 1. **Daten abrufen und Dataset füllen:** Du lädst die Daten aus der Datenbank in ein `DataSet` mit einem `... [mehr]

Wie kann ich feststellen, ob ein Control disposed ist?

Um festzustellen, ob ein Control in .NET (z. B. Windows Forms) bereits disposed ist, kannst du die Eigenschaft **IsDisposed** verwenden. Diese gibt einen booleschen Wert zurück, der angibt, ob da... [mehr]

Wie beende ich alle Excel-Tasks in C#?

Um alle Excel-Tasks in C# zu beenden, kannst du die `System.Diagnostics`-Namespace verwenden, um alle Prozesse mit dem Namen "EXCEL" zu beenden. Hier ist ein einfaches Beispiel, wie du das u... [mehr]

Was bedeutet in C# ein ! hinter einer Variable?

In C# hat das Ausrufezeichen `!` hinter einer Variable mehrere Bedeutungen, abhängig vom Kontext: 1. **Logische Negation**: Wenn `!` vor einem booleschen Ausdruck steht, negiert es den Wert. Zum... [mehr]