10. november 2003 - 15:38Der er
11 kommentarer og 1 løsning
Delete i DataGrid - Index was out of range.
Jeg får flg. fejl når jeg vil slette en row i mit datagrid:
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
Min kode:
// Delete row in DataGrid protected void dg_Delete(object sender, DataGridCommandEventArgs e) { try { if (!isEditing) { // the key value for this row is in the DataKeys collection string keyValue = (string)dg.DataKeys[e.Item.ItemIndex]; SqlString = "DELETE FROM mailinglists WHERE ID = @ID"; Response.Write(SqlString);
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Prøv at lave en Response.Write("Item clicked:" + e.Item.ItemIndex.ToString()); Så kan du verificere at du ikke forsøger at vælge et Index i dg.DataKeys der ikke eksisterer. Er det i det hele taget i denne linje at du får fejlen?
Prøv at udkommentér din try/catch. Så får du den præcise linje. Der er jo reelt to steder det kan gå galt: string keyValue = (string)dg.DataKeys[e.Item.ItemIndex]; eller objCommand.Parameters.Add("@ID", MySqlType.Int).Value = dg.DataKeys[(int)e.Item.ItemIndex];
...men det nok er den første. Tjek lige på samme måde om (dg.DataKeys.Count-1) < e.Item.ItemIndex ? Det er ihvertfald mit bedste bud på hvad fejlen er.
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.