C # Добавление строк в DataGridView - PullRequest
0 голосов
/ 10 февраля 2011

В настоящее время у меня есть следующие коды, и я хочу добавить новую строку в DataGridView при нажатии кнопки X1, как я могу это сделать?

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

Ответы [ 2 ]

1 голос
/ 10 февраля 2011
      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 голосов
/ 10 февраля 2011

То, как вы задаете вопрос, говорит о том, что вы не понимаете, как он должен работать.

Когда вы выполняете SqlDataAdapter.Fill, DataTable заполняется копией данных из таблицы базы данных.,DataGridView - это объект, который отображает эти данные для пользователя.

Если вы хотите добавить строку, вы должны добавить ее в DataTable dTable, но получить новую строку:

(Этопереходит в событие нажатия кнопки).

DataRow dr = dTable.NewRow ()

Вставка в него ваших данных:

dr [0] = что-то;dr [1] = somethng;и т. д.

Затем добавьте строку в таблицу

dTable.Rows.Add (dr);

После изменения данных в таблице необходимо сохранитьданные возвращаются в базу данных с использованием источника данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...