Avatar billede papfisken Nybegynder
15. januar 2005 - 13:42 Der er 1 kommentar og
1 løsning

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:
Avatar billede papfisken Nybegynder
15. januar 2005 - 14:15 #1
Er ret vigtigt, så smider lige nogle flere point ind, håber det hjælper. Sig til hvis problemet ikke er formuleret godt nok
Avatar billede papfisken Nybegynder
15. januar 2005 - 15:38 #2
Hmm lukker igen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester