Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    non passa argomento alla query

    non riesco a venirne a capo, l'errore è questo:
    Errore di sintassi (operatore mancante) nell'espressione della query 'dettagli Where idLivello1Dett=@idLivello1Dett'.
    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

    Dettagli eccezione: System.Data.OleDb.OleDbException: Errore di sintassi (operatore mancante) nell'espressione della query 'dettagli Where idLivello1Dett=@idLivello1Dett'.

    Errore nel codice sorgente:


    Riga 52: SqlDelete.parameters.Add( "@idLivello1Dett", StrLivelloID )
    Riga 53: Connessione.open()
    Riga 54: SqlDelete.ExecuteNonQuery()
    Riga 55: Connessione.close()
    Riga 56: dlstLivello1.EditItemIndex = - 1


    e questo è il codice:
    ' ---------------DELETE---------------------------
    Sub dlstLivello1_DeleteCommand(s As Object, e As DataListCommandEventArgs)
    dim Connessione As oledbconnection
    dim StrDelete As String
    dim SqlDelete As oleDbcommand
    dim StrLivelloID As integer

    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex)
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbScarta.mdb" )
    StrDelete = "Delete dettagli Where idLivello1Dett=@idLivello1Dett"
    SqlDelete = new oleDbCommand (StrDelete, Connessione)
    SqlDelete.parameters.Add( "@idLivello1Dett", StrLivelloID )
    Connessione.open()
    SqlDelete.ExecuteNonQuery()
    Connessione.close()
    dlstLivello1.EditItemIndex = - 1
    BindDataList
    end sub
    non siamo altro ciò che sappiamo

  2. #2

    Re: non passa argomento alla query

    E' sbagliata la query SQL.
    codice:
    Delete FROM dettagli Where idLivello1Dett=idLivello1Dett
    Inoltre usi la sintassi per richiamare una stored procedure, quando poi non la usi (la stored procedure intendo).
    Prova:
    codice:
    ...
    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex) 
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbS
    carta.mdb") 
    StrDelete = "Delete from dettagli Where idLivello1Dett=idLivello1Dett" 
    SqlDelete = new oleDbCommand (StrDelete, Connessione) 
    Connessione.open() 
    SqlDelete.ExecuteNonQuery() 
    Connessione.close()

  3. #3
    nada, il problema non si risolve. io non è ke uso una prcedura come se usassi SqlServer, il mio è solo un modo per passare parametri alla query. Per dire questo ho controllato sul manuale e lo anke sperimentato in passato, funziona, il mio metodo è giusto, anzi si farebbe così per essere pignoli:
    Sub dlstLivello1_DeleteCommand(s As Object, e As DataListCommandEventArgs)
    dim Connessione As oledbconnection
    dim StrDelete As String
    dim SqlDelete As oleDbcommand
    dim StrLivelloID As integer

    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex)
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbScarta.mdb" )
    StrDelete = "Delete From dettagli where idLivello1Dett=?"
    SqlDelete = new oleDbCommand (StrDelete, Connessione)
    SqlDelete.parameters.Add( "@idLivello1Dett", StrLivelloID )

    Connessione.open()
    SqlDelete.ExecuteNonQuery()
    Connessione.close()
    dlstLivello1.EditItemIndex = - 1
    BindDataList
    end sub


    cmq. il problema non lo risolto, ora vi servo tutto il FILE:
    provate a farlo girare nel vostro server... magari trovate subito il problema. Ciao e grazie

    <%@ Page Language="VB" Debug="true" %>
    <%@ import Namespace="system.data.OleDb" %>
    <script runat="server">

    sub Page_Load
    if not IsPostBack
    BindDataList
    end if
    end sub

    Sub BindDataList
    dim Connessione As oledbconnection
    dim SqlSelect As oleDbcommand
    dim puntatore As oleDbDataReader

    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbScarta.mdb" )

    SqlSelect = New OleDbCommand("Select idLivello1Dett, nome, cognome from dettagli Order by nome", Connessione)
    Connessione.open()
    puntatore = SqlSelect.executeReader()

    dlstLivello1.dataSource = puntatore
    dlstLivello1.DataBind()

    puntatore.close()
    Connessione.close()
    end sub

    ' ---------------EDIT---------------------------
    Sub dlstLivello1_EditCommand(s As Object, e As DataListCommandEventArgs)
    dlstLivello1.EditItemIndex = e.Item.ItemIndex
    BindDataList
    end sub

    ' ---------------CANCEL---------------------------
    Sub dlstLivello1_CancelCommand(s As Object, e As DataListCommandEventArgs)
    dlstLivello1.EditItemIndex = - 1
    BindDataList
    end sub
    ' ---------------DELETE---------------------------
    Sub dlstLivello1_DeleteCommand(s As Object, e As DataListCommandEventArgs)
    dim Connessione As oledbconnection
    dim StrDelete As String
    dim SqlDelete As oleDbcommand
    dim StrLivelloID As integer

    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex)
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbScarta.mdb" )
    StrDelete = "Delete From dettagli where idLivello1Dett=?"
    SqlDelete = new oleDbCommand (StrDelete, Connessione)
    SqlDelete.parameters.Add( "@idLivello1Dett", StrLivelloID )
    Connessione.open()
    SqlDelete.ExecuteNonQuery()
    Connessione.close()
    dlstLivello1.EditItemIndex = - 1
    BindDataList
    end sub

    ' ---------------UPDATE---------------------------
    Sub dlstLivello1_UpdateCommand(s As Object, e As DataListCommandEventArgs)
    dim Connessione As oledbconnection
    dim StrUpdate As String
    dim SqlUpdate As oleDbcommand
    dim StrLivelloID As String
    dim txtNome As TextBox
    dim txtCognome As TextBox

    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex)
    txtNome = e.Item.FindControl("txtNome")
    txtCognome = e.Item.FindControl("txtCognome")
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbScarta.mdb" )
    StrUpdate = "Update dettagli Set nome = ?, cognome = ? Where idLivello1Dett = ?"
    SqlUpdate = new oleDbCommand (StrUpdate, Connessione)
    SqlUpdate.parameters.Add("@idLivello1Dett", StrLivelloID)
    SqlUpdate.parameters.Add("@nome", txtNome)
    SqlUpdate.parameters.Add("@cognome", txtCognome)
    Connessione.open()
    SqlUpdate.ExecuteNonQuery()
    Connessione.close()
    dlstLivello1.EditItemIndex = - 1
    BindDataList
    end sub
    </script>

    <html><head><title></title></head><body>
    <form runat="server">

    <aspataList
    id="dlstLivello1"
    dataKeyField="idLivello1Dett"
    OnEditCommand="dlstLivello1_EditCommand"
    OnCancelCommand="dlstLivello1_CancelCommand"
    OnDeleteCommand="dlstLivello1_DeleteCommand"
    OnUpdateCommand="dlstLivello1_UpdateCommand"
    RepeatColumns="4"
    GridLines="Both"
    CellPadding="10"
    EditItemStyle-BackColor="lightgrey"
    runat="server">

    <ItemTemplate>
    <%# Container.DataItem( "nome" ) %>
    <%# Container.DataItem( "cognome" ) %>


    <asp:linkbutton Text="Visualizza"
    CommandName="edit"
    runat="server"/>
    </ItemTemplate>

    <edititemtemplate>
    Nome:


    <asp:textbox ID="txtNome"
    Text='<%# Container.DataItem( "nome" ) %>'
    runat="server"/>



    cognome:


    <asp:textbox ID="txtCognome"
    Text='<%# Container.DataItem( "cognome" ) %>'
    runat="server"/>



    <asp:linkbutton
    Text="Modifica"
    CommandName="Update"
    runat="server"/>
    <asp:linkbutton
    Text="Cancella"
    CommandName="delete"
    runat="server"/>
    <asp:linkbutton
    Text="Annulla"
    CommandName="cancel"
    runat="server"/>
    </edititemtemplate>

    </aspataList>
    </form></body></html>
    non siamo altro ciò che sappiamo

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    codice:
    StrDelete = "Delete From dettagli Where idLivello1Dett=@idLivello1Dett"

    Hey hey, my my Rock and roll can never die!

  5. #5
    mi spiace zampa, ma ancke il tuo modo non funziona :master: , non riesco a capire dove sia il problema ma so che interessa la query.
    l'errore è questo:
    Errore server nell'applicazione '/esercizi_aspx'.
    --------------------------------------------------------------------------------

    Impossibile eliminare dalle tabelle specificate.
    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

    Dettagli eccezione: System.Data.OleDb.OleDbException: Impossibile eliminare dalle tabelle specificate.

    Errore nel codice sorgente:


    Riga 51: SqlDelete.parameters.Add( "@idLivello1Dett", StrLivelloID )
    Riga 52: Connessione.open()
    Riga 53: SqlDelete.ExecuteNonQuery()
    Riga 54: Connessione.close()
    Riga 55: dlstLivello1.EditItemIndex = - 1
    non siamo altro ciò che sappiamo

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Se idlivello1dett è un campo numerico:

    SqlDelete.parameters.Add( "@idLivello1Dett", OleDBType.Integer, StrLivelloID )

    oppure se è un campo testo:

    SqlDelete.parameters.Add( "@idLivello1Dett", OleDBType.Char, StrLivelloID )

    altimenti non so che dirti

    Hey hey, my my Rock and roll can never die!

  7. #7
    niente da fare... non riesce ad eseguire l'SqlDelete.ExecuteNonQuery
    cè qualcosa ke mi sfugge. idLivello1Dett + un campo numerico, o meglio è un contatore di una tabella del database di Access.
    frullo il programma oppure voi avete qualcosa da dirmi?

    Sub dlstLivello1_DeleteCommand(s As Object, e As DataListCommandEventArgs)
    dim Connessione As oledbconnection
    dim StrDelete As String
    dim SqlDelete As oleDbcommand
    dim StrLivelloID As string

    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex)
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbScarta.mdb" )
    StrDelete = "Delete From dettagli where idLivello1Dett=@idLivello1Det"
    SqlDelete = New oleDbCommand (StrDelete, Connessione)
    ' SqlDelete.Parameters.Add( "@idLivello1Dett", StrLivelloID )
    SqlDelete.parameters.Add( "@idLivello1Dett", OleDBType.Integer, StrLivelloID )
    Connessione.open()
    SqlDelete.ExecuteNonQuery()
    Connessione.close()
    dlstLivello1.EditItemIndex = -1
    BindDataList
    End sub
    non siamo altro ciò che sappiamo

  8. #8
    dimenticavo... ho anke provato a mettere la variabile del parametro a integer... non va cmq.!

    Sub dlstLivello1_DeleteCommand(s As Object, e As DataListCommandEventArgs)
    dim Connessione As oledbconnection
    dim StrDelete As String
    dim SqlDelete As oleDbcommand
    dim StrLivelloID As integer

    StrLivelloID = dlstLivello1.DataKeys(e.Item.ItemIndex)
    Connessione = New oledbconnection ("PROVIDER=Microsoft.jet.oledb.4.0; DATA Source=C:\ServerLocale\esercizi_aspx\dbS
    carta.mdb")
    StrDelete = "Delete From dettagli where idLivello1Dett=@idLivello1Det"
    SqlDelete = New oleDbCommand (StrDelete, Connessione)
    ' SqlDelete.Parameters.Add( "@idLivello1Dett", StrLivelloID )
    SqlDelete.parameters.Add( "@idLivello1Dett", OleDBType.Integer, StrLivelloID )
    Connessione.open()
    SqlDelete.ExecuteNonQuery()
    Connessione.close()
    dlstLivello1.EditItemIndex = -1
    BindDataList
    End sub
    non siamo altro ciò che sappiamo

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 © 2026 vBulletin Solutions, Inc. All rights reserved.