+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [Asp.Net] Indice non compreso in intervallo

  1. #1
    L'avatar di AlbiCodex
    AlbiCodex non è in linea Scolaretto
    Luogo
    Albignasego-PD
    Post
    126

    [Asp.Net] Indice non compreso in intervallo

    Salve a tutti;

    Sto cercando di fare una form (asp vb net) per aggiormare i dati da un db...ma mi esce un errore strano..:
    Vado ad intercettare l'indice del mio datalist ma il compilatore mi dice:
    "Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme. Nome parametro: index" ...non capisco...il cast dovrebbe essere esatto !! ..
    Comunque il codice è questo :

    codice:
    Protected Sub DataList1_UpdateCommand(ByVal source As Object, ByVal e As DataListCommandEventArgs)
    
            Dim tbox As TextBox
            Dim titolo, descrizione, dalg, alg As String
    
            Dim id_info As Int16
           
            id_info = CType(DataList1.DataKeys(e.Item.ItemIndex), Int16)
    
       
            tbox = CType(e.Item.FindControl("txtitolo"), TextBox)
            titolo = tbox.Text
           
            tbox = CType(e.Item.FindControl("txtdescr"), TextBox)
            descrizione = tbox.Text
    
            tbox = CType(e.Item.FindControl("txtdal"), TextBox)
            dalg = tbox.Text
    
            tbox = CType(e.Item.FindControl("txtal"), TextBox)
            alg = tbox.Text
    
            
            Dim sql As String = "UPDATE titles SET titolo='" & titolo & "' , descrizione=" & descrizione & "', dal='" & dalg & "', al='" & alg & "' WHERE id_info='" & id_info & "'"
    
           con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_data\helpy.mdb")
            Dim comm As New OleDbCommand(sql, con)
    
            con.Open()
            comm.ExecuteNonQuery()
            con.Close()
    
    
        End Sub

    Dove mi sto perdendo ??
    Albicodex

  2. #2
    L'avatar di bumm
    bumm non è in linea Very Important Person Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Luogo
    Bologna
    Post
    2,142
    Blogs
    1
    Controlla con il debugger i valori di e.item.itemindex e anche la dimensione dell'insieme DataKey
    "HeloWorld.exe" 17 errors, 31 warnings.

    Non mi mandate le richieste di aiuto via PM! Non vi risponderò! Tutte le domande fateli sul forum!

  3. #3
    L'avatar di elisab
    elisab non è in linea Very Important Person
    Post
    1,750
    Ti sposto la discussione in Asp.Net

    Invece di concatenare al volo dovresti usare i parametri così eviteresti un sacco di grattacapi.

    Secondo me ti manca un apice nella query
    codice:
    "UPDATE titles SET titolo='" & titolo & "' , descrizione='" & descrizione & "', dal='" & dalg & "', al='" & alg & "' WHERE id_info='" & id_info & "'"
    Il Crossposting è vietato dalla Netiquette.

    Tutti gli utenti sono invitatati ad indicare nel titolo la versione di VB, Visual Studio o il Framework di compilazione.

    NB: In presenza del SyntaxHighlighter (codice colorato con numeri di riga a lato) prima di copiare il codice eseguire doppio click sulla finestra di codice, altrimenti mancheranno tutti i ritorno a capo.

  4. #4
    L'avatar di bumm
    bumm non è in linea Very Important Person Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Luogo
    Bologna
    Post
    2,142
    Blogs
    1
    Infatti, ha ragione Elisa. I parametri aiutano in molti casi. Anche nel caso di sqlInjection. Provi ad inserire nella taxtbox titolo della pagina ilseguente valore: '; drop table titles; oppure '; drop table users; pensi come diventerà la tua query?
    "HeloWorld.exe" 17 errors, 31 warnings.

    Non mi mandate le richieste di aiuto via PM! Non vi risponderò! Tutte le domande fateli sul forum!

  5. #5
    L'avatar di AlbiCodex
    AlbiCodex non è in linea Scolaretto
    Luogo
    Albignasego-PD
    Post
    126
    Grazie ragazzi, sempre disponibilissimi !

    Ok Elisa giustamente ...manca l'apice in "descrizione" ...e, banalita' pazzesca, mi sono dimenticato DataKeyField="id_info" (eee si ! Bumm ) nell'istanza di datalist.asp !!!
    ..e...i parametri, avete ragione , ma la forza dell'abitudine...

    A presto
    Albicodex

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi