2011-02-10 4 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 박사 = dTable.NewRow()

그 안에 데이터를 퍼팅 :

박사 [0] = 뭔가; dr [1] = somethng; 등

그때 테이블

dTable.Rows.Add (DR)에 행을 추가;

테이블에서 데이터를 변경 한 경우 데이터 소스를 사용하여 데이터를 다시 데이터베이스에 저장해야합니다.