数据库连接到datagridview的行

时间:2017-04-13 04:32:56

标签: c# sql-server winforms datagridviewrow

我需要逐行填充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;

希望我向你明确要求

他们以任何方式完成它...... 提前谢谢....

2 个答案:

答案 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
}