Ответ 1
Вы можете попробовать с помощью этого кода - на основе Rows.Add method
DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);
Ссылка: https://msdn.microsoft.com/en-us/library/9yfsd47w.aspx
У меня есть DataGridView
, привязанный к DataTable
(DataTable
привязанный к базе данных). Мне нужно добавить DataRow
в DataTable
. Я пытаюсь использовать следующий код:
dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();
for (int i = 0; i < 28; i++)
{
row[i] = i.ToString();
}
Но это не сработает, DataGridView
никогда не добавлялась новая строка. Пожалуйста, скажите, как я могу исправить свой код?
Спасибо заранее.
Вы можете попробовать с помощью этого кода - на основе Rows.Add method
DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);
Ссылка: https://msdn.microsoft.com/en-us/library/9yfsd47w.aspx
//Создание новой строки со структурой таблицы:
DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);
//Предоставление значений столбцам строки (в этой строке должно быть 28 столбцов):
for (int i = 0; i < 28; i++)
{
row[i] = i.ToString();
}
Вы должны явно добавить строку в таблицу
table.Rows.Add(row);
Если вам нужно скопировать из другой таблицы, сначала необходимо скопировать структуру:
DataTable copyDt = existentDt.Clone();
copyDt.ImportRow(existentDt.Rows[0]);
Я нашел примеры dotnetperls на DataRow
очень полезно. Код фрагмента для нового DataTable
оттуда:
static DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("Weight", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Breed", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(57, "Koko", "Shar Pei", DateTime.Now);
table.Rows.Add(130, "Fido", "Bullmastiff", DateTime.Now);
table.Rows.Add(92, "Alex", "Anatolian Shepherd Dog", DateTime.Now);
table.Rows.Add(25, "Charles", "Cavalier King Charles Spaniel", DateTime.Now);
table.Rows.Add(7, "Candy", "Yorkshire Terrier", DateTime.Now);
return table;
}
Это работает для меня:
var table = new DataTable();
table.Rows.Add();
попробуйте table.Rows.add(row);
после вашего оператора for
.
GRV.DataSource = Class1.DataTable;
GRV.DataBind();
Class1.GRV.Rows[e.RowIndex].Delete();
GRV.DataSource = Class1.DataTable;
GRV.DataBind();