2015-04-17 3 views
0

У меня есть Datagridview, содержащий две кнопки, кнопку AddEntry и кнопку EditEntry в форме. Всякий раз, когда форма загружается, данные с листа excel будут загружены в gridview.C# WinForms: добавление строки в DataGridView, связанный с данными

У меня нет проблем с загрузкой данных с листа excel в gridview. Кнопка AddEntry перенаправляет меня в другую форму, в которой есть некоторые текстовые поля для добавления записи.

Однако, когда я пытаюсь добавить новую запись в gridview, нажав кнопку AddEntry, я получаю эту ошибку: «ROWS НЕ МОЖЕТ БЫТЬ ПРОГРАММА АДРЕСОВАНО К СЕТЕВОЙ КОЛЛЕКЦИИ, КОТОРЫЙ КОНТРОЛЬ BOUND/DATA BOUND».

Вот мой код-за Баттоном AddEntry:

private void AddEntry_Click(object sender,eventargs e) 
{ 
    gridview.Rows.Add(_sno.Text,_date.Text,_category.Text); 
} 

Конструктора в форме, которая имеет текстовые поля для добавления данных:

DataGridView gridview; 
public FinanceEntries_Open(DataGridView _grid,string filename) 
{ 
    InitializeComponent(); 
    label2.Text = filename; 
    gridview = _grid; 
} 
+0

, пожалуйста, –

ответ

0

Если вы используете DataSource свойства DataGridView связывать к данным вы не можете явно добавлять строки непосредственно к DataGridView. Вместо этого вы должны добавить строку directy в свой источник данных.

Вместо этого вы можете добавить эту новую строку в DataSet или DataTable, привязанную к DataGridView.

Вы можете использовать метод DataTable.NewRow, чтобы добавить новую строку к связанным данным и обновить GridView.

Если вы связывание DataTable

DataTable dataTable = new DataTable(); 
DataRow newRow = dataTable.NewRow(); 

// add new data to this newRow 

dataTable.Rows.Add(newRow); 

Если вы используете List

List<YOUR_DATA_LIST> myData = new List<YOUR_DATA_LIST>(); 

//Add new YOUR_DATA_LIST object to the list 
myData.Add(new YOUR_DATA_LIST()); 

//Now Refresh/Reset the Datasource 
gridView.DataSource = null; 
gridView.DataSource = myData; 
0

Поскольку вы используете связывание, вам нужно добавить свой объект в основную коллекцию, а не данные, сетка. Если вы используете список или таблицу данных, добавьте новый объект в эту коллекцию. В силу привязки он будет отображаться в виде сетки данных.

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