Datagrid fejl ved update/insert
Hej jeg er lidt af en n00b til ASP.NET, men er så småt kommet i gang. Jeg har det problem at jeg har et datagrid (bestående af en tabel hentet direkte ud fra databasen). Dette datagrid bliver vist i en tabel hvor jeg skal have lavet det muligt at slette/rette/tilføje entrys i tabellen.Det virker fint med at slette og rette, men lige så snart jeg prøver at tilføje en ny, går den ind og redigerer i den entry med den laveste ID (række 0 i den viste tabel) istedet for at oprette en ny.
Når der ikke er noget data i tabellen kommer den med denne fejl når jeg prøver at tilføje en ny entry:
There is no row at position 0.
// tryk på linket "tilføj entry"
private void lbnAddNew_Click(object sender, System.EventArgs e)
{
this.lbnAddNew.Enabled = false;
DSDataForCombobox.tblDataForComboboxesRow row = dsDataForCombobox1.tblDataForComboboxes.NewtblDataForComboboxesRow();
row.Key = 0;
row.Field_type = "";
row.Value = "";
dsDataForCombobox1.tblDataForComboboxes.Rows.InsertAt(row, 0);
DataGrid1.EditItemIndex = 0;
DataGrid1.DataBind();
}
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DSDataForCombobox.tblDataForComboboxesRow row;
if(false == lbnAddNew.Enabled)
{
lbnAddNew.Enabled = true;
row = (DSDataForCombobox.tblDataForComboboxesRow)dsDataForCombobox1.tblDataForComboboxes.Rows[e.Item.ItemIndex];
}
else
{
int key = (int)DataGrid1.DataKeys[e.Item.ItemIndex];
row = dsDataForCombobox1.tblDataForComboboxes.FindByKey(key);
}
row.Field_type = getSelectedVal(e.Item.Cells[fFieldType]);
row.Value = getStrFromGrid(e.Item.Cells[fValue]);
sqlDataAdapter1.Update(dsDataForCombobox1);
dsDataForCombobox1.Clear();
sqlDataAdapter1.Fill(dsDataForCombobox1);
DataGrid1.EditItemIndex = -1;
DataGrid1.DataBind();
}
Den del af koden hvor jeg tror fejlen ligger er her:
