Du musst dich entscheiden, was du willst.
DataTable anzeigen:
C#-Quelltext
1:
| dataGridView.DataSource = mDaten.Tables["USER"]; |
Um eine
bestimmte Zeile anzuzeigen, ist es am besten, eine
DataView auf die DataTable zu legen mit einem bestimmten Filter und diese DataView als DataSource zuzuweisen.
C#-Quelltext
1: 2: 3: 4:
| DataView dv = new DataView(); dv.Table = mDaten.Tables["USER"]; dv.RowFilter = "ID = 37"; dataGridView.DataSource = dv; |
Um eine
bestimmte Spalte anzuzeigen, gibt es (mindestens) zwei Möglichkeiten: (a) Es wird die DataTable mit
AutoGenerateColumns=true an das DGV zugewiesen; danach werden für alle nicht gewünschten DGV-Spalten Visible auf false gesetzt. (b) Es wird die DataTable mit AutoGenerateColumns=false an das DGV zugewiesen; die gewünschte Spalte wird manuell erzeugt und dem DGV zugewiesen.
Um eine
bestimmte Zelle anzuzeigen, ist das DGV nicht geeignet. (Genauer: Es ist eher Quatsch, wenn ein Control mit n*m Zellen auf eine Größe von 1*1 beschränkt wird.) Wenn du das unbedingt willst, kannst du die o.g. Verfahren kombinieren. Besser ist es, eine TextBox oder ComboBox oder MaskedTextBox zu verwenden oder was auch immer geeignet ist.
Übrigens hilft ein Blick in die SDK-Doku/MSDN/Hilfe, was als DataSource geeignet ist:
DataGridView.DataSource ist zwar als
object deklariert, aber aus den Beschreibungen geht hervor, dass der Typ zu einem der folgenden Interfaces passen muss:
* The
IList interface, including one-dimensional arrays.
* The
IListSource interface, such as the DataTable and DataSet classes.
* The
IBindingList interface, such as the BindingList<(Of <(T>)>) class.
* The
IBindingListView interface, such as the BindingSource class.
Gruß Jürgen