繁体   English   中英

当我从数据库中获取数据时,如何在datagridview中添加额外的列

[英]How can I add extra column in datagridview when I fetch data from database

在我的数据库中,我有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列。 代码,描述,Qnty,速率。 我想在此datagridview中添加两列。 金额和叙述。 但是在PurchaseTable中没有Amount和Narration列。我可以这样做吗?

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

添加空白列

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);

假设你已经有了dtusers ..

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

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

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

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

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

并记住set 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(); 
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM