Как обновить DataGrid по событию клика? - PullRequest
1 голос
/ 25 апреля 2011

У меня есть следующий код, который обновляет базу данных по нажатию кнопки, вызывая функцию additems.

static DataTable additems(string itema, string itemb, string itemc, string itemd)
        {
            DataTable listitems = new DataTable();
            listitems.Columns.Add("itema");
            listitems.Columns.Add("itemb");
            listitems.Columns.Add("itemc");
            listitems.Columns.Add("itemd");

            // Add new items
            listitems.Rows.Add(itema, itemb, itemc, itemd);

            return listitems;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // add to data grid
            dataGridView1.DataSource = additems("New text", "Almonds", "Butter", "Salt");
        }

Я хотел, чтобы вышеуказанный код создал новую сетку данных.И это отлично работает для отдельных данных ... но для нескольких данных, как я могу достичь таких высот?

У меня есть новая переменная (без использования базы данных).При каждом нажатии кнопки 1 эта переменная должна быть загружена в таблицу данных, чтобы ее можно было мгновенно добавить в datagridview1.

Мне нужны некоторые понятия ...

1 Ответ

0 голосов
/ 25 апреля 2011

ну, вы можете изменить метод sig, чтобы получить новый параметр для datatable ...

если это ноль, создайте новую таблицу, как вы делаете сейчас ... если это не ноль, просто добавьте новую строку в эту существующую таблицу

// быстрый и грязный пример

static DataTable additems(string itema, string itemb, string itemc, string itemd, DataTable foo)
{
    DataTable listitems = foo;
    if(foo == null)
    {
       listitems = new DataTable();
       listitems.Columns.Add("itema");
       listitems.Columns.Add("itemb");
       listitems.Columns.Add("itemc");
       listitems.Columns.Add("itemd");
    }

    // Add new items
    listitems.Rows.Add(itema, itemb, itemc, itemd);

    return listitems;
}

private void button1_Click(object sender, EventArgs e)
{
    // add to data grid

    dataGridView1.DataSource = additems("New text", "Almonds", "Butter", "Salt", (DataTable)dataGridView1.DataSource); 
}

Вы также можете подумать о сохранении данных в приватном поле вместо использования (DataTable)dataGridView1.DataSource, но вопрос был не о хорошем стиле кодирования;)

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