database-Verbindung zu datagridview-Zeile nur

Ich habe die Anforderung, die datagridview Zeile für Zeile zu füllen. dh wenn die 3. Zeile aktuell ausgewählt ist, müssen die data in der 3. Zeile ausgefüllt werden (meine Abfrage gibt immer eine Zeile zurück). gleich für jede reihe.

etwas wie was

DataTable dt = new DataTable(); dataadapter.Fill(dt); dataGridView1.Rows[index].DataSource = dt; (just a hunch, but not working) (instead of ) //dataGridView1.DataSource = dt; 

hoffe, dass ich mir meine Anforderung klar gemacht habe

Ist ihr irgendeine Möglichkeit, es zu erreichen …. Vielen Dank im Voraus ….

Wenn Ihre Abfrage eine einzelne Zeile zurückgibt, müssen Sie nur die Spalten mit korrekten Werten aus Ihrer Abfrage ausfüllen:

 dataGridView1.Rows[rowIndex].Cells["ColumnName"].Value = dt.Rows[0]["ColumnNameInDataTable"].ToString(); 

Dein Raster wird nicht so an die data gebunden. Aber es wird die Spalten in der aktuellen Zeile füllen, wie du gefragt hast.

Ich glaube nicht, dass dies direkt möglich ist, Du könntest eine list mit einer gewissen Menge an leeren objecten verwenden und diese list an deine DataGridView binden … Dann hättest du leere Zeilen, mit denen du arbeiten kannst. Sie können dann einzelne Zeilen der list mit data füllen und die Bindung aktualisieren. Ich denke auch, dass Sie eine BindingSource und nicht eine DataTable in diesem Fall benötigen …

Etwas wie das:

 private List<YourObject> gridData; // List private BindingSource bindingSource; public void Init() { this.gridData = new List<Anything>(); //prefill list, in this case we want to have 100 empty rows in DataGrid for (var i = 0; i < 100; i++) { this.gridData.Add(new YourObject()); } this.bindingSource.DataSource = this.gridData; } public void UpdateRow(int row) { this.gridData[row] = (from .. in select ...).FirstOrDefault(); // your query }