C#在DataGridView中添加行
问题描述:
我目前有以下代码,并且我想在单击buttonX1时向DataGridView添加一个新行,我该怎么做?C#在DataGridView中添加行
private void Form1_Load(object sender, EventArgs e)
{
string query = "SELECT * FROM Bill";
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, DBconn);
OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);
DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
//BindingSource to sync DataTable and DataGridView
BindingSource bSource = new BindingSource();
//set the BindingSource DataSource
bSource.DataSource = dTable;
//set the DataGridView DataSource
dataGridViewX1.DataSource = bSource;
dAdapter.Update(dTable);
}
private void buttonX1_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Bill (Item, Quantity, Price) VALUES ('Soft Drink', 1, 1)";
cmd.Connection = DBconn;
DBconn.Open();
cmd.ExecuteNonQuery();
DBconn.Close();
}
答
private void Select()
{
string query = "SELECT * FROM Bill";
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, DBconn);
OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);
DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
//BindingSource to sync DataTable and DataGridView
BindingSource bSource = new BindingSource();
//set the BindingSource DataSource
bSource.DataSource = dTable;
//set the DataGridView DataSource
dataGridViewX1.DataSource = bSource;
dAdapter.Update(dTable);
}
private void buttonX1_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Bill (Item, Quantity, Price) VALUES ('Soft Drink', 1, 1)";
cmd.Connection = DBconn;
DBconn.Open();
cmd.ExecuteNonQuery();
DBconn.Close();
//call the Select function
Select();
}
+0
作品一种享受,非常感谢:) – pacheco 2011-02-10 17:32:55
答
你提出你的问题的方式表明,你不明白它是如何工作的。
当您执行SqlDataAdapter.Fill时,DataTable将填充数据库表中的数据副本。 DataGridView是一个将数据显示给用户的对象。
当你想添加一行,你应该增加它在数据表dTable,但获得一个新行:
(这正好在按钮的Click事件)。
的DataRow DR = dTable.NewRow()
把你的数据在它:
博士[0] =东西; dr [1] = somethng; 等
行然后添加到表
dTable.Rows.Add(DR);
当您更改了表格中的数据时,必须使用数据源将数据保存回数据库。
它给出了什么错误?如果是,那是什么? – reggie 2011-02-10 17:27:55