【问题标题】:fill data to already defined columns in datagridview将数据填充到 datagridview 中已定义的列
【发布时间】:2013-09-15 22:23:47
【问题描述】:

我正在尝试将 DateTable 绑定到已经具有使用 VS 中的设计器设计的列的 Datagridview。 DataTable 的来源是 sql 数据库。我正在尝试使用以下代码执行此操作,该代码仅在 datagridview 中添加空白行。我还使用 DataTable 中列的名称更新 DGV 列的 DataPropertyName 属性

SqlConnection CN = new SqlConnection(mysql.CON.ConnectionString);
dataGridView1.AutoGenerateColumns = false;
DataTable dt = new DataTable();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
    dt.Columns.Add(col.Name);
    col.DataPropertyName = col.Name;
}
SqlDataAdapter sda = new SqlDataAdapter("select id,name,age,notes  from test where id = '" + txtID.Text + "'", CN);
sda.Fill(dt);
dataGridView1.DataSource = dt;

请帮助了解为什么这些行在没有数据的情况下被视为空

【问题讨论】:

  • 你能帮我在这里找到错误吗

标签: c# sql


【解决方案1】:

我认为您的 sda.Fill(dt); 是错误的,因为根据 SqlDataAdapter 上的参考资料,您可能需要填写 DataSet 没有 DataTable .查看并了解有关如何从数据库中获取数据的更多信息。尝试任何教程,而不是在 stackoverflow 上询问。

http://msdn.microsoft.com/en-us/library/ms171920.aspx
http://msdn.microsoft.com/cs-CZ/library/system.data.sqlclient.sqldataadapter.aspx

【讨论】:

    【解决方案2】:

    稍微修改一下你的代码:

    SqlConnection CN = new SqlConnection(mysql.CON.ConnectionString);
    dataGridView1.AutoGenerateColumns = false;
    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter("select id,name,age,notes  from test where id = '" + txtID.Text + "'", CN);
    sda.Fill(dt);
    dataGridView1.DataSource = dt;
    for (int i = 0; i<dataGridView1.Columns.Count;i++)
    {
    dataGridView1.Columns[i].DataPropertyName = SelectionChangeCommitted.Columns[i].ColumnName;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 2013-10-27
      相关资源
      最近更新 更多