在我的数据库中,我有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列。我可以这样做吗?
答案 0 :(得分: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);
答案 1 :(得分:1)
假设您已经拥有dtusers
..
将列添加添加到dtuser
.. http://msdn.microsoft.com/en-us/library/hfx3s9wd.aspx
为表格中的所有行循环以填充新列
将表格指定为dgv数据源.. dataGridView1.DataSource = dtusers;
答案 2 :(得分:0)
由于您的列名称是硬编码的,我认为您可以通过设计器在datagridview中创建预定义列(点击datagridview - >选择编辑列)。
创建所需的所有6列。在前四个设置DataPropertyName
到查询列的名称。最后两个留空。
请记住在将数据绑定到datagridview之前设置datagridview.AutoGeneratedColumns = false;
...(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();
}