我需要逐行填充datagridview。即如果当前选择第3行,则需要在第3行填写数据(我的查询总是返回单行)。每行都一样。
有点像
DataTable dt = new DataTable();
dataadapter.Fill(dt);
dataGridView1.Rows[index].DataSource = dt; (just a hunch, but not working)
(instead of ) //dataGridView1.DataSource = dt;
希望我向你明确要求
他们以任何方式完成它...... 提前谢谢....
答案 0 :(得分:1)
如果您的查询返回单行,则只需使用查询中的正确值填充列:
dataGridView1.Rows[rowIndex].Cells["ColumnName"].Value =
dt.Rows[0]["ColumnNameInDataTable"].ToString();
您的网格不会以这种方式绑定到数据。但它会填写当前行中的列,就像你问的那样。
答案 1 :(得分:0)
我认为这不可能直接, 您可以使用具有一定数量空对象的List并将此List绑定到DataGridView ...然后您将使用空行。然后,您可以使用数据填充List的单行并更新绑定。 我还认为在这种情况下你需要一个BindingSource而不是DataTable ......
这样的事情:
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
}