#c# #.net #visual-studio-2008 #data-binding
#c# #.net #visual-studio-2008 #привязка данных
Вопрос:
У меня есть следующий код, который обновляет базу данных при нажатии кнопки, вызывая функцию 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");
}
Я хотел, чтобы приведенный выше код создал новую таблицу данных. И это отлично работает для отдельных данных..
но для нескольких данных, как я могу достичь таких высот?
У меня есть новая переменная (не использующая какую-либо базу данных). Всякий раз, когда нажимается button1, эту переменную необходимо загружать в таблицу данных, чтобы ее можно было мгновенно добавить в datagridview1.
Мне нужны некоторые концепции…
Ответ №1:
ну, вы могли бы изменить метод sig, чтобы принимать новый параметр для datatable …
если это значение равно null, создайте новую таблицу, как вы делаете сейчас … если значение не равно null, просто добавьте новую строку в существующую таблицу
// быстрый и грязный пример
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 в закрытом поле вместо использования (DataTable)dataGridView1.DataSource
, но вопрос был не в хорошем стиле кодирования 😉
Комментарии:
1. каждый раз, когда я нажимаю на кнопку one.. новый элемент должен быть добавлен в таблицу данных, включая предыдущий.. listitems.Rows.Add(itema, itemb, itemc, itemd);