mjanz - Do 29.05.08 13:15
Titel: Zellinhalte aus einem DataGridView auslesen
Hi,
ich abe folgende Frage: mit einer LINQ-Abfrage fülle ich ein DataGridView:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| public void LoadCategories() { string strCategory = ""; strCategory = kategorienComboBox.Text;
var procatQry = from p in db.Products where p.Categories.CategoryName == strCategory select p;
dgrArtikel.DataSource = procatQry; } |
Die Abfrage funktioniert wie programmiert und das DataGridView wird gefüllt.
Das DataGridview ist ReadOnly, SelectionMode ist FullRowSelect. Wenn ein User auf einen der Datensätze doppelklickt, möchte ich in meiner Anwendung weitere Datenbankabfragen machen um dann diesen Daten im Detail darzustellen, Änderungsmöglichkeiten zu geben, etc.
Wie kann ich einzelne Zellinhalte aus der selektierten, geklickten Zeile auslesen, um diese Daten für weitere Abfragen zu verwenden? Wißt Ihr Rat? Tausend Dank im Voraus für Eure Hilfe!
Gruß
Marcus
Moderiert von
Christian S.: C#-Tags hinzugefügt
JüTho - Do 29.05.08 14:38
Das geht u.a. mit:
DataGridView.CurrentRow.Cells[].Value
DataGridView.CurrentCell.Value
DataGridView.CurrentRow.DataBoundItem as DataRowView;
Der Wert muss immer in den entsprechenden Typ konvertiert werden.
// Während ich das geschrieben habe, hast Du selbst Deine Lösung geschickt. Die ist aber nicht gut genug. An meinen Vorschlägen siehst Du, dass es kürzer geht; außerdem ist Convert.ToXxx immer zu vermeiden. Hier geht es einfach so:
C#-Quelltext
1:
| ArtikelID = (int)dgrArtikel.CurrentRow.Cells[0].Value; |
In anderen Situation ist Parse, ParseExact, TryParse, TryParseExact entschieden vorzuziehen.
Außerdem solltest Du Code markieren, wie Christian schon einmal angedeutet hat: Textbereich markieren, Button "Bereiche" öffnen, das Plus neben C# anklicken.
Jürgen