2011-02-10 24 views
0

現在、次のコードがあり、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

答えて

1
 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

0

あなたが疑問提起方法は、動作するようになっていますどのようにあなたが理解していないことを示唆しています。

SqlDataAdapter.Fillを実行すると、DataTableにはデータベーステーブルのデータのコピーが格納されます。 DataGridViewは、そのデータをユーザーに表示するオブジェクトです。

あなたが行を追加したい場合は、あなたがたDataTable dTableでそれを追加する必要がありますに、新しい行を取得:

(これは、ボタンのクリックイベントになります)。

のDataRow DR = dTable.NewRow()

それにデータを置く:

DR [0] =何か。 dr [1] = somethng; 等

そして

dTable.Rows.Add(DR)のテーブルに行を追加します。

テーブル内のデータを変更したら、データソースを使用してデータをデータベースに保存する必要があります。

関連する問題