Хороший обмен стоп-качками. Это мой первый пост здесь. Мне нужна ваша помощь в этой проблеме, которую я получил с DataTable и Datarow. Вот ошибка:Вставка в DataTable и DataRow: Индекс за пределами допустимого диапазона
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
^Это происходит и указывает на dataGridView1 [0] индекс
Вот мой код:
static DataTable dtTest = GetTable();
static DataTable GetTable()
{
//added 4 columns with an incremental id
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns["ID"].AutoIncrement = true;
dt.Columns.Add("item");
dt.Columns.Add("qty", typeof(decimal));
dt.Columns.Add("amount", typeof(decimal));
return dt;
}
private void btnInsert_Click(object sender, EventArgs e)
{
//added 3 rows to hold data to be inserted to DataTable
DataRow myRow;
myRow = dt.NewRow();
myRow["item"] = txtItem.Text;
myRow["qty"] = Convert.ToDecimal(txtQty.Text);
myRow["amount"] = Convert.ToDecimal(txtAmount.Text);
dtTest.Rows.Add(myRow);
refreshItemGrid();
}
private void refreshItemGrid()
{
dataGridView1.Refresh();
dataGridView1.Columns[0].Visible = false; // ID
dataGridView1.Columns[1].HeaderText = "ITEM"; // item
dataGridView1.Columns[2].HeaderText = "QUANTITY"; // qty
dataGridView1.Columns[3].HeaderText = "AMOUNT"; // amount
}
Где я делаю неправильно здесь? Заранее спасибо за помощь. Ура!
Где вы привязываете dtTest к dataGridView1? Пока вы не свяжете их, нет столбцов для использования в dataGridView – Steve
Я ранее пробовал «dataGridView1.DataSource = dtTest» для привязки моего datagridview, но это та же ошибка – Markov
И каково значение свойства AutoGenerateColumns? Он должен быть установлен в True (это значение по умолчанию, но давайте проверим его ...), и, кстати, я полагаю, что это опечатка, но вы не можете создать NewRow из таблицы и добавить в другую таблицу – Steve