Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206

    [VB] - Argomento specificato non compreso nell'intervallo

    Ho uno scrpt che consente di modificare un dato da un datagrid:
    "
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

    dataop.Text = calendar1.SelectedDate.ToString()
    Dim dataop2 As String
    dataop2 = Left(dataop.Text, 10)

    If Session("datagrid") Is Nothing Then

    ' Dim myCommand As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/contocorrente/mdb-database/contocorrente.mdb")
    'Dim objConnE As New OleDbConnection(strConnE)

    'Importa la connessione
    Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/contocorrente/mdb-database/contocorrente.mdb")

    'Apri la connessione
    Dim myCommand As New OleDbDataAdapter("SELECT * FROM accrediti WHERE dataop =" & "'" & dataop2 & "'" & "ORDER BY cuas ASC", myConnection)

    'Riempi l'oggetto DataSet
    ds = New DataSet()
    myCommand.Fill(ds, "accrediti")

    Session("datagrid") = ds
    Else
    ds = Session("datagrid")
    End If

    'Crea DataView
    dv = New DataView(ds.Tables("accrediti"))
    dv.Sort = "id"

    DataGrid1.DataSource = dv
    If Not Page.IsPostBack Then
    DataBind()
    End If
    End Sub

    Private Sub DataGrid1_Edit(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
    DataGrid1.EditItemIndex = e.Item.ItemIndex
    DataGrid1.DataBind()
    End Sub

    Private Sub DataGrid1_Update(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
    'Leggi dati
    Dim idUtente As String = e.Item.Cells(0).Text
    Dim txtnumop As String = e.Item.Cells(1).Text
    Dim txtdataop As String = e.Item.Cells(2).Text
    Dim txtdataval As String = e.Item.Cells(3).Text
    Dim txtcuas As String = e.Item.Cells(4).Text
    Dim txtimpaccredito As String = e.Item.Cells(5).Text
    Dim txtquantita As String = e.Item.Cells(6).Text
    Dim txtimppervenuto As TextBox = e.Item.Cells(7).Controls(0)
    Dim txtdatapervenuto As TextBox = e.Item.Cells(8).Controls(0)
    Dim txtimpnoperv As TextBox = e.Item.Cells(9).Controls(0)
    Dim txttotalebusta As TextBox = e.Item.Cells(10).Controls(0)
    Dim txttotaledalavor As String = e.Item.Cells(11).Text
    Dim txttotalequieta As String = e.Item.Cells(12).Text
    Dim txttotaledarestitu As String = e.Item.Cells(13).Text
    Dim txttotalemancatorestitu As String = e.Item.Cells(14).Text


    Dim imppervenuto As String = txtimppervenuto.Text
    Dim datapervenuto As String = txtdatapervenuto.Text
    Dim impnoperv As String = txtimpnoperv.Text
    Dim totalebusta As String = txttotalebusta.Text


    'elimina riga
    dv.RowFilter = "id=" + idUtente
    If dv.Count > 0 Then
    dv.Delete(0)
    End If
    dv.RowFilter = ""

    'inserisci nuova riga
    Dim dr As DataRow = ds.Tables("accrediti").NewRow()
    dr(0) = idUtente
    dr(1) = txtnumop
    dr(2) = txtdataop
    dr(3) = txtdataval
    dr(4) = txtcuas
    dr(5) = txtimpaccredito
    dr(6) = txtquantita
    dr(7) = imppervenuto
    dr(8) = datapervenuto
    dr(9) = impnoperv
    dr(10) = totalebusta
    dr(11) = txttotaledalavor
    dr(12) = txttotalequieta
    dr(13) = txttotaledarestitu
    dr(14) = txttotalemancatorestitu
    ds.Tables("accrediti").Rows.Add(dr)

    DataGrid1.EditItemIndex = -1
    DataGrid1.DataBind()

    'Aggiorna il DB
    Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/contocorrente/mdb-database/contocorrente.mdb")
    Dim myCommand As New OleDbCommand("UPDATE accrediti SET imppervenuto=?, datapervenuto=?, impnoperv=?, totalebusta=? WHERE id=? AND numop=?", myConnection)
    myCommand.Parameters.Add(New OleDbParameter("@7", imppervenuto))
    myCommand.Parameters.Add(New OleDbParameter("@8", datapervenuto))
    myCommand.Parameters.Add(New OleDbParameter("@9", impnoperv))
    myCommand.Parameters.Add(New OleDbParameter("@10", totalebusta))
    myCommand.Parameters.Add(New OleDbParameter("@0", idUtente))
    myCommand.Parameters.Add(New OleDbParameter("@1", txtnumop))
    myConnection.Open()
    myCommand.ExecuteNonQuery()
    myConnection.Close()
    End Sub
    "

    quando provo a variare il dato presente mi da questo errore:

    Argomento specificato non compreso nell'intervallo. Nome parametro: index

    sulla riga 101

    Riga 99: Dim txtimppervenuto As TextBox = e.Item.Cells(7).Controls(0)
    Riga 100: Dim txtdatapervenuto As TextBox = e.Item.Cells(8).Controls(0)
    Riga 101: Dim txtimpnoperv As TextBox = e.Item.Cells(9).Controls(0)
    Riga 102: Dim txttotalebusta As TextBox = e.Item.Cells(10).Controls(0)
    Riga 103: Dim txttotaledalavor As String = e.Item.Cells(11).Text

    Non riesco a capire dov'è l'errore.

    Qualcuno sa darmi qualche indicazione?

    Grazie.
    Cordialità Donaz

  2. #2
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Forse non sono stato troppo chiaro. Provo a illustrare il problema in modo più chiaro:

    1) Ho questo datagrid:
    codice:
    <asp:datagrid id="DataGrid1" runat="server" 
                HeaderStyle-BackColor="#ccffff" 
                BorderColor="Black" CellPadding="4" 
                Width="1010px" 
                Font-Names="Verdana" 
                Font-Size="8pt"
                OnItemCommand="DataGrid1_Delete" 
                OnUpdateCommand="DataGrid1_Update" 
                OnCancelCommand="DataGrid1_Cancel" 
                onEditCommand="DataGrid1_Edit" 
                AutoGenerateColumns="false"> 
    
                <Columns>
                    <asp:BoundColumn DataField="ID" HeaderText="Codice" readonly="True" />
                    <asp:BoundColumn DataField="numop" HeaderText="Numero operazione" readonly="True" />
                    <asp:BoundColumn DataField="dataop" HeaderText="Data operazione" readonly="True" />
                    <asp:BoundColumn DataField="dataval" HeaderText="Data valuta" readonly="True" dataformatstring="{0:C}"/>
                    <asp:BoundColumn DataField="cuas" HeaderText="Cuas" readonly="True" />
                    <asp:BoundColumn DataField="impaccredito" HeaderText="Importo accreditato" readonly="True" dataformatstring="{0:C}"/>
                    <asp:BoundColumn DataField="quantitaacr" HeaderText="Numero bollettini" readonly="True" dataformatstring="{0:C}"/>
                    <asp:BoundColumn DataField="imppervenuto" HeaderText="Importo pervenuto" />
                    <asp:BoundColumn DataField="datapervenuto" HeaderText="Data pervenuto" />
                    <asp:BoundColumn DataField="impnoperv" HeaderText="Totale non pervenuto" />
                    <asp:BoundColumn DataField="totalebusta" HeaderText="Totale busta" />
                    <asp:BoundColumn DataField="totaledalavor" HeaderText="Totale da lavorare" readonly="True"/>
                    <asp:BoundColumn DataField="totalequieta" HeaderText="Totale quietanzato" readonly="True"/>
                    <asp:BoundColumn DataField="totaledarestitu" HeaderText="Totale da restituire" readonly="True" />
                    <asp:BoundColumn DataField="totalemancatorestitu" HeaderText="Totale mancata restituzione" readonly="True" />
                    <asp:EditCommandColumn 
                        HeaderText="Modifica" EditText="Modifica" 
                        UpdateText="Aggiorna" CancelText="Annulla" />
                    <asp:ButtonColumn Text="Elimina" ButtonType="PushButton" 
                        HeaderText="Elimina" CommandName="delete" />
                </Columns>
                <HeaderStyle BackColor="#CCFFFF" />
            </asp:datagrid>
    Quando provo ad effettuare la modifica del dato di una riga mi vengono visualizzati i campi con i dati presenti nel db e una volta modificati e confermati ho l'errore segnalato.
    Quindi il problema è in fase di modifica del dato, cioè quando prova ad effettuare datagrid1_edit. Perchè quando legge il dato delle ultime due celle oggetto di modifica segnala l'errore?
    Cordialità Donaz

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.