Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [ASP.NET]StoredProcedure

    Salve ho creato una StoredProcedure in access per aggiornare un record di una tabella così:
    (UPDATE macro SET voce = [@voce] WHERE id=[@id];

    da codice cerco di aggiornare un record così:

    ...
    param = cmd.Parameters.Add("@id", OleDbType.Integer)
    param.Direction = ParameterDirection.Input
    param.Value = id

    param = cmd.Parameters.Add("@voce", OleDbType.Char)
    param.Direction = ParameterDirection.Input
    param.Value = voce

    try
    cmd.Connection.Open()
    cmd.ExecuteNonQuery()
    cmd.Connection.Close()
    catch ex as OleDbException
    Throw New Exception(ex.Message)
    finally
    conn.Close()
    end try
    ...

    Quando eseguo questa funzione non mi viene generato nessun errore però non viene effettuata nessuna operazione nel db.
    Come è possibile?

    Grazie

  2. #2

    Re: [ASP.NET]StoredProcedure

    Originariamente inviato da alfdev
    Salve ho creato una StoredProcedure in access per aggiornare un record di una tabella così:
    non dici pero' la parte piu' importante e cioe' come valorizzi le proprieta' commandtext e commandtype del command
    Saluti a tutti
    Riccardo

  3. #3

    Re: [ASP.NET]StoredProcedure

    Originariamente inviato da alfdev
    catch ex as OleDbException
    Throw New Exception(ex.Message)
    finally
    conn.Close()
    end try
    se devi gestirlo cosi l'errore allora forse e' meglio che togli il catch e lasci soltanto il try con il finally
    Saluti a tutti
    Riccardo

  4. #4
    Scusami non volevo mettere tutto il codice della function, adesso ti posto la parte iniziale:

    dim conn as New OleDbConnection(strConn)
    dim cmd as OleDbCommand = New OleDbCommand("UpdateMacro",conn)
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Connection = conn
    dim param as OleDbParameter

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    UPDATE macro SET voce = [@voce] WHERE id=[@id];
    xkè le parentesi prima di @id .. io ne le ho mai messe, semmai prima di [id]
    del tipo:
    UPDATE macro SET [voce] = @voce WHERE [id]=@id;

  6. #6
    Originariamente inviato da alfdev
    Scusami non volevo mettere tutto il codice della function, adesso ti posto la parte iniziale:
    Non uso molto access ma provo cmq a darti qualche consiglio.
    Il dataprovider oledb accetta come identificatore di parametro il segno ? . Mentre la valorizzazione dei parametri puoi farla scrivendo meno codice (e rischiando quindi di fare meno errori)
    es.
    codice:
    UPDATE macro SET [voce] = ? WHERE [id]=? 
    
    cmd.Parameters.Add("voce", OleDbType.Char).Value = "quellochevuoi"
    cmd.Parameters.Add("id", OleDbType.Integer).Value = 2
    Saluti a tutti
    Riccardo

  7. #7
    Scusami ma questa : UPDATE macro SET [voce] = ? WHERE [id]=? è la StoredProcedure?

    Ma la cosa strana è che solo le storedprocedure per la modifica (UPDATE) non funzionano..

  8. #8
    dimenticavo che un buon modo potrebbe essere quello di espandere nel server explorer di visualstudio il database access ed espandere le storedprocedures (le query) trascinandone una sul form ti si dovrebbe aprire il wizard di creazione automatica del dataadapter. Dopo di che, guardi come le crea lui
    Saluti a tutti
    Riccardo

  9. #9
    Originariamente inviato da alfdev
    Scusami ma questa : UPDATE macro SET [voce] = ? WHERE [id]=? è la StoredProcedure?
    si
    Saluti a tutti
    Riccardo

  10. #10
    Ok Grazie...
    Appena provo come dici tu ti faccio sapere.

    Grazie 1000

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.