【问题标题】:DataGridView databound and manual columnDataGridView 数据绑定和手动列
【发布时间】:2013-09-20 05:42:09
【问题描述】:

我在 c# 的表单上有一个DataGridView,我需要在这个 DGV 上的 7 个列中,其中 6 个将从 SQL 数据库中提取,其中 1 个我需要手动输入,它是一个链接列。我要做的一件事(我认为)是手动列在每一行中都有相同的数据。

我一直在使用数据表填充此 DGV,但我不知道如何在同一个 DGV 中添加手动列和数据绑定列。我的列布局如下所示:

Column1 - DB 填充

第 2 列 - 已填充数据库

第 3 列 - 已填充数据库

第 4 列 - 已填充数据库

第 5 列 - 已填充数据库

第 6 列 - 已填充数据库

Column7 - 手动填充

有人可以向我解释一下我会如何做这样的事情。如果您也可以包含数据表定义,那将是一个很大的帮助,以便我验证我至少以正确的方式这样做。

【问题讨论】:

  • 底层数据源(DataTable)中是否有手动添加列的对应列
  • 没有。手动填充的列(对于所有行)中的值是“查看详细信息”,它是一个链接列。它与数据库填充值无关
  • 如果是这样,你不需要所谓的manually bound column,因为我们没有任何底层数据源可以绑定,为什么不在添加的列中手动设置单元格值?或者您有其他数据源可以从中提取数据?

标签: c# sql datagridview


【解决方案1】:

不知道为什么这会如此困难 - 最初不要在 Datagrid 中保留任何列。将其绑定到数据源,然后手动添加列

private void button1_Click(object sender, EventArgs e)
{
    con.Open();
    SqlCommand com = new SqlCommand("select * from yourtable", con);
    SqlDataAdapter adp = new SqlDataAdapter(com);
    DataSet ds = new DataSet();
    adp.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0];
    dataGridView1.Columns.Add("manualcolumn", "manualcolumn");
}

或者:

private void button1_Click(object sender, EventArgs e)
{
    con.Open();
    SqlCommand com = new SqlCommand("select * from yourtable", con);
    SqlDataAdapter adp = new SqlDataAdapter(com);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    dataGridView1.DataSource = dt;
    dataGridView1.Columns.Add("manualcolumn", "manualcolumn");
}

conSqlConnection

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多