数据库仅连接到 datagridview 的行

database connection to datagridview's row only

我有要求逐行填充datagridview。即,如果当前选择了第 3 行,则需要在第 3 行中填写数据(我的查询 returns 总是单行)。每一行都一样。

有点喜欢

              DataTable dt = new DataTable();
        dataadapter.Fill(dt);

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

希望我向您说明了我的要求

他们有什么方法可以做到吗.... 提前致谢....

我认为这不可能直接实现, 您可以使用带有一定数量的空对象的列表,并将此列表绑定到您的 DataGridView ......然后您将有空行可以使用。然后,您可以用数据填充列表的单行并更新绑定。 我还认为在这种情况下您需要 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
}

如果您的查询 returns 是单行,那么您只需使用查询中的正确值填充列即可:

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

您的网格不会以这种方式绑定到数据。但它会像您要求的那样填充当前行中的列。