[英]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
..
将列添加到dtuser
.. http://msdn.microsoft.com/en-us/library/hfx3s9wd.aspx
对表中的所有行进行循环以填充新列
将表分配为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.