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(); 
    } 
+0

它给出了什么错误?如果是,那是什么? – reggie 2011-02-10 17:27:55

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

当您更改了表格中的数据时,必须使用数据源将数据保存回数据库。