Visualizzazione dei risultati da 1 a 3 su 3

Discussione: VB - Errore con UPDATE

  1. #1
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206

    VB - Errore con UPDATE

    Salve a tutti
    Ho un errore in fase di update. Non riesco a trovare l'errore. La pagina consente di scegliere da un calendario una data di visualizzare i record relativi a quella data e di poter modificare alcuni campi. Vi riporto la parte dove si ha l'errore in fase di update.

    Sub calendar1_SelectionChanged(ByVal Sender As Object, ByVal E As EventArgs)
    Dim strnumop As String
    datacomm.Text = calendar1.SelectedDate.ToString()
    Dim datacomm1 As String
    Dim datacommorig As String
    datacomm1 = Left(datacomm.Text, 10)
    datacommorig = datacomm1
    datacomm1 = Replace(datacomm1, "/", "")
    Dim strmese As String
    Dim strgiorno As String
    Dim stranno As String
    'Response.Write(datacomm1)
    stranno = Right(datacomm1, 4)
    strmese = Left(datacomm1, 4)
    strmese = Right(strmese, 2)
    strgiorno = Left(datacomm1, 2)
    datacomm1 = stranno & strmese & strgiorno
    Message.Text = ""
    Dim strConn As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/regschedulatore/mdb-database/commessa.mdb")
    Dim objConn As New OleDbConnection(strConn)
    objConn.Open()
    Dim strSQL As String = "SELECT * FROM commessa WHERE datawrite2 =" & "'" & datacomm1 & "'" & "ORDER BY datawrite ASC"
    Dim objCommand As New Data.OleDb.OleDbCommand(strSQL, objConn)
    Dim objDataReader As OleDbDataReader
    objDataReader = objCommand.ExecuteReader
    If Not objDataReader.HasRows() Then
    DataGrid1.DataSource = Nothing
    DataGrid1.DataBind()
    lblsegnalazione.Text = "Non ci sono commesse registrate per il giorno " & datacommorig
    Else
    DataGrid1.DataSource = objDataReader
    DataGrid1.DataBind()
    lblsegnalazione.Text = "Elenco delle commesse registrate per il giorno " & datacommorig
    End If
    End Sub

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

    ' datacomm.Text = calendar1.SelectedDate.ToString()
    Dim datacomm2 As String
    datacomm2 = Left(datacomm.Text, 10)

    If Session("datagrid") Is Nothing Then


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

    'Apri la connessione
    Dim myCommand As New OleDbDataAdapter("SELECT * FROM commessa WHERE datawrite2 =" & "'" & datacomm2 & "'" & "ORDER BY datawrite ASC", myConnection)

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

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

    'Crea DataView
    dv = New DataView(ds.Tables("commessa"))
    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 txtnumero As String = e.Item.Cells(0).Text
    Dim datawrite As String = e.Item.Cells(1).Text
    Dim txtadr As String = e.Item.Cells(2).Text
    Dim txtprocesso As String = e.Item.Cells(3).Text
    Dim txtlibreria As String = e.Item.Cells(4).Text
    Dim txtutente As String = e.Item.Cells(5).Text
    Dim txtdescrizione As String = e.Item.Cells(6).Text
    Dim txtdataelab As TextBox = e.Item.Cells(7).Controls(0)
    Dim txtesitoelab As TextBox = e.Item.Cells(8).Controls(0)
    Dim txtnotesito As TextBox = e.Item.Cells(9).Controls(0)
    Dim txtinfoline As TextBox = e.Item.Cells(10).Controls(0)
    Dim txtdatawesito As String = e.Item.Cells(11).Text
    Dim txtutesito As String = e.Item.Cells(12).Text
    Dim dataelab As String = txtdataelab.Text
    Dim esitoelab As String = txtesitoelab.Text
    Dim notesito As String = txtnotesito.Text
    Dim infoline As String = txtinfoline.Text
    Dim datawesito As String = Now()
    Dim aCookie As HttpCookie = Request.Cookies("nome")
    Dim Label1 As String
    Label1 = Server.HtmlEncode(aCookie.Value)
    Label1 = Replace(Label1, "=ASP.login_aspx", "")
    Dim utesito As String = Label1


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

    'inserisci nuova riga
    Dim dr As DataRow = ds.Tables("commessa").NewRow()
    dr(0) = txtnumero
    dr(1) = datawrite
    dr(2) = txtadr
    dr(3) = txtprocesso
    dr(4) = txtlibreria
    dr(5) = txtutente
    dr(6) = txtdescrizione
    dr(7) = dataelab
    dr(8) = esitoelab
    dr(9) = notesito
    dr(10) = infoline
    dr(11) = datawesito
    dr(12) = utesito
    ds.Tables("commessa").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:/regschedulatore/mdb-database/commessa.mdb")
    Dim myCommand As New OleDbCommand("UPDATE commessa SET dataelab=?, esitoelab=?, notesito=?, infoline=?, datawesito=?, utesito=? WHERE id=?", myConnection)
    myCommand.Parameters.Add(New OleDbParameter("@7", dataelab))
    myCommand.Parameters.Add(New OleDbParameter("@8", esitoelab))
    myCommand.Parameters.Add(New OleDbParameter("@9", notesito))
    myCommand.Parameters.Add(New OleDbParameter("@10", infoline))
    myCommand.Parameters.Add(New OleDbParameter("@11", datawesito))
    myCommand.Parameters.Add(New OleDbParameter("@12", utesito))
    myConnection.Open()
    myCommand.ExecuteNonQuery()
    myConnection.Close()
    End Sub

    l'errore si realizza quando prova ad eseguire

    Riga 145: myCommand.Parameters.Add(New OleDbParameter("@12", utesito))
    Riga 146: myConnection.Open()
    RiRiga 147: myCommand.ExecuteNonQuery() ga 148: myConnection.Close()
    Riga 149: End Sub

    Dettagli eccezione: System.Data.OleDb.OleDbException: Nessun valore specificato per alcuni parametri necessari.

    Grazie
    Cordialità Donaz

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    Ad occhio,
    direi che quando crei i parameters,
    alcuni dei valori sono nulli...

    consiglio per la prox volta: non postare TUUUUTTO il codice, perche se no poi nessuno lo legge fino in fondo!
    Nessuna critica neh, solo un consglio!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    così ad occhio mi sembra che non passi il parametro dell' id

    WHERE id=?
    "...non è detto che sia tardi se non guardi che ora è..."

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.