2011-02-10 6 views
0

В настоящее время у меня есть следующие коды, и я хотел бы добавить новую строку в DataGridView при нажатии кнопкиX1, как я могу это сделать?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 (д-р);

Когда вы изменили данные в таблице, вам необходимо сохранить данные обратно в базу данных с помощью DataSource.

Смежные вопросы