0

在我的数据库中,我有 4 列。我在 datagridview 中获取这个数据库值。但我想在 datagridview 中添加两列。所以,我想制作一个有 6 列的 datagridview。在这 6 列中,4 列将由数据库值填充。我怎样才能做到这一点?

        OleDbConnection con = new OleDbConnection("CONNECTION STRING");
        con.Open();
        DataTable dtusers = new DataTable();

        OleDbCommand cmd = new OleDbCommand("Select Code,Description,Qnty,Rate from PurchaseTable'", con);
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        da.Fill(dtusers);
        dataGridView1.DataSource = dtusers;
        dataGridView1.Columns[0].Name = "Code ";
        dataGridView1.Columns[1].Name = "Description";
        dataGridView1.Columns[2].Name = "Qnty";
        dataGridView1.Columns[3].Name = "Rate";
        con.Close();

这里有 4 列。代码、描述、数量、费率。我想在这个 datagridview 中再添加两列。数量和叙述。但是 PurchaseTable 中没有金额和旁白列。我该怎么做?

4

3 回答 3

1

如果您想要空白列,请创建它们并插入。如果数据在数据库中,则将连接添加到您的查询中以检索数据。

添加空白列

DataGridView dgv = new DataGridView();
dgv.DataSource = dtusers;

DataGridViewColumn amount = new DataGridViewColumn();
amount.HeaderText = "Amount";
amount.Name = "Amount";
dgv.Columns.Insert(0, amount);

DataGridViewColumn narration = new DataGridViewColumn();
narration.HeaderText = "Narration";
narration.Name = "Narration";
dgv.Columns.Insert(0, narration);
于 2013-09-04T15:06:40.020 回答
1

假设你已经有dtusers..

  1. 列添加dtuser.. http://msdn.microsoft.com/en-us/library/hfx3s9wd.aspx

  2. 对表中的所有行进行循环以填充新列

  3. 将表分配为 dgv 数据源 ..dataGridView1.DataSource = dtusers;

于 2013-09-04T16:43:11.887 回答
0

因为您的列名是硬编码的,所以我认为您可以通过设计器在 datagridview 中创建预定义的列(单击 datagridview -> 选择编辑列)。

创建您想要的所有 6 列。在前四个设置DataPropertyName为您查询中的列的名称。最后两个留空。

并记住datagridview.AutoGeneratedColumns = false;在将数据绑定到 datagridview 之前设置...(在form_Load处理程序中的某处)

在此之后,您的代码将是:

using (OleDbConnection con = new OleDbConnection("CONNECTION STRING"))
{
    con.Open();
    DataTable dtusers = new DataTable();

    using(OleDbCommand cmd = new OleDbCommand("Select Code,Description,Qnty,Rate from PurchaseTable'", con))
    {
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        da.Fill(dtusers);
        dataGridView1.DataSource = dtusers;
    } 
    con.Close(); 
} 
于 2013-09-04T19:46:53.550 回答