| 

.NET C# Java Javascript Exception

4
Hallo,

ich verzweifle gerade an der DataGridView bzw. an dem korrekten Binden an eine DataTable.

Über den Designer habe ich eine DataGridView in meine Form gezogen. Dazu auch ein BindingSource und ein BindingNavigator. Diese 3 Komponenten habe ich dann im Desinger miteinander verknüft (DataSource = ... etc.).
Soweit klappt alles. Ich kann auch zusammen mit dem BindingNavigator Daten in der DataGridView erfassen, löschen etc.

Im Source habe ich eine DataTable (public DataTable = new DT)
Diese fülle ich mit Daten. Dies funktioniert, denn ich kann die Daten im Debugger sehen und sie auch wieder korrekt auslesen.
Die Verbindung erfolgt durch ein einfaches : bindingSource1.DataSource = vokabelTable

Resultat:
Die DataGridView hat die Information, dass es wohl 10 Sätze gibt. Sie zeigt 10 Zeilen an, diese sind aber alle leer.

Ich habe es auch versucht ohne bindingSource mit einem direkten :
DataGridView.DataSource = DataTable
>> gleiches Resultat.

Wenn ich Daten in der grid erfasse, landen sie auch nicht in die DataTable.

> Habe zwar bereits etwas im Internet gesucht - die reihenfolge der jeweiligen Bindings soll wichtig sein. Habe obige Zeile mal im Konstruktor der View direkt hinter InitializeComponent() und auhc mal in Form_Load() gemacht - Kein Unterschied.

Hoffe jemand kann mir helfen.
Danke
Manfred
News:
09.11.2011
Manfred 71 1 5
2 Antworten
2
Das Problem ist ziemlich sicher dass du die Verknüpfungen von den Spalten falsch mit der DataTable gemacht hast.
D.h. die Spalten sind an irgendwas verknüpft was nicht existiert. Deshalb sieht man dort auch keine Werte.

Setze mal AutoGenerateColumns auf True und lass dir die Spalten automatisch generieren. Dann siehst du was ich meine.
Du musst einfach die Spalten im DGV richtig mit den Spalten in der DataTable verknüpfen

Grüße
Michael
09.11.2011
michlG 1,7k 1 5
0
Perfekt - das war's !

Damit hat es dann funktioniert:

private void InitTableBinding()
{
bindingSource.DataSource = dataTable;

for (int i = 0; i < dataTable.Columns.Count; i++)
{
dataGridView.Columns[i].DataPropertyName = dataTable.Columns[i].ColumnName;
}
}
09.11.2011
Manfred 71 1 5
1
Nun, wenn der Tip von michlG perfekt war, wird es Dir sicher auch nicht schwer fallen, ihn durch Klick auf den grünen Haken zu akzeptieren.
Matthias Hlawatsch 09.11.2011

Stelle deine Datagridview-Frage jetzt!