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

    Aggiornamento dei dati non aggiorna

    Ciao a tutti
    vorrei chiedervi se avete avuto problemi con l'aggiornamento dei dati in un DB access con ASP.NET
    Io si, praticamente non riesco ad aggiornare i dati a meno che non cancello la riga esistente e ne riscrivo una nuova.
    Premetto che utilizzo DBAccess,StoredProcedure,Classe con metodo AggiornaDati e utilizzo queste componenti in una pagina Aspx.


    Ecco il codice:

    Questa è la classe:

    Public Sub AggiornaDati(ne_id as integer,ne_nome as string,ne_id_tipologia as integer,ne_icona as string,ne_coordx as integer,ne_coordy as integer,ne_indirizzo as string,ne_cap as integer,ne_citta as integer,ne_tel as string,ne_fax as string,ne_email as string,ne_desc as string,ne_foto1 as string,ne_foto2 as string,ne_online as integer,ne_new as integer,ne_scheda as integer,ne_banner as integer,ne_img_banner as string,ne_txt_banner as string,ne_logo as string,ne_img_logo as string,ne_sito as string)

    Dim objCommand as New OleDbCommand ("ModificaNegozio",objConn)

    objCommand.CommandType = CommandType.StoredProcedure
    Dim objParam as OleDbParameter

    objParam = new OleDbParameter("@NE_ID",OleDbType.integer)
    objParam.Value = ne_id
    objCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_NOME",OleDbType.varchar)
    objParam.Value = ne_nome
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_ID_TIPOLOGIA",OleDbType.Intege r)
    objParam.Value = ne_id_tipologia
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_ICONA",OleDbType.varchar)
    objParam.Value = ne_icona
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_COORDX",OleDbType.varchar)
    objParam.Value = ne_coordx
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_COORDY",OleDbType.varchar)
    objParam.Value = ne_coordy
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_INDIRIZZO",OleDbType.varchar)
    objParam.Value = ne_indirizzo
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_CAP",OleDbType.varchar)
    objParam.Value = ne_cap
    ObjCommand.Parameters.Add(objParam)

    objParam = new OleDbParameter("@NE_CITTA",OleDbType.varchar)
    objParam.Value = ne_citta
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_TEL",OleDbType.varchar)
    objParam.Value = ne_tel
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_FAX",OleDbType.varchar)
    objParam.Value = ne_fax
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_EMAIL",OleDbType.varchar)
    objParam.Value = ne_email
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_DESC",OleDbType.varchar)
    objParam.Value = ne_desc
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_FOTO1",OleDbType.varchar)
    objParam.Value = ne_foto1
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_FOTO2",OleDbType.varchar)
    objParam.Value = ne_foto2
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_ONLINE",OleDbType.integer)
    objParam.Value = ne_online
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_NEW",OleDbType.integer)
    objParam.Value = ne_new
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_SCHEDA",OleDbType.integer)
    objParam.Value = ne_scheda
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_BANNER",OleDbType.integer)
    objParam.Value = ne_banner
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_IMG_BANNER",OleDbType.varchar)
    objParam.Value = ne_img_banner
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_TXT_BANNER",OleDbType.varchar)
    objParam.Value = ne_txt_banner
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_LOGO",OleDbType.integer)
    objParam.Value = ne_logo
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_IMG_LOGO",OleDbType.varchar)
    objParam.Value = ne_img_logo
    ObjCommand.Parameters.Add(objParam)


    objParam = new OleDbParameter("@NE_SITO",OleDbType.varchar)
    objParam.Value = ne_sito
    ObjCommand.Parameters.Add(objParam)


    try
    objconn.Open
    ObjCommand.ExecuteNonQuery()
    objConn.Close
    Catch e as Exception
    throw e
    End Try
    End Sub



    Questa è la pagina aspx:

    Sub UpdateNegozio (obj as object, e as DatalistCommandEventArgs)
    'Gestione del comando OnUpdateCommand del controllo Datalist1

    Dim strconn,ne_nome,ne_icona,ne_coordx,ne_coordy,ne_in dirizzo,ne_cap,ne_citta,ne_tel,ne_fax,ne_email,ne_ desc,ne_foto1,ne_foto2,ne_img_banner,ne_txt_banner ,ne_img_logo,ne_sito as string
    Dim ID_Negozio,ne_id_tipologia,ne_online,ne_new,ne_sch eda,ne_banner,ne_logo as integer

    ID_Negozio = datalist1.DataKeys.Item (e.item.itemindex)

    ne_nome = cTYPE( e.Item.FindControl("BOX_NE_NOME"),textbox).text
    ne_id_tipologia = cTYPE( e.Item.FindControl("BOX_NE_ID_TIPOLOGIA"),textbox) .text
    ne_icona = cTYPE( e.Item.FindControl("BOX_NE_ICONA"),textbox).text
    ne_coordx = cTYPE( e.Item.FindControl("BOX_NE_COORDX"),textbox).text
    ne_coordy = cTYPE( e.Item.FindControl("BOX_NE_COORDY"),textbox).text
    ne_indirizzo = cTYPE( e.Item.FindControl("BOX_NE_INDIRIZZO"),textbox).te xt
    ne_cap = cTYPE( e.Item.FindControl("BOX_NE_CAP"),textbox).text
    ne_citta = cTYPE( e.Item.FindControl("BOX_NE_CITTA"),textbox).text
    ne_tel = cTYPE( e.Item.FindControl("BOX_NE_TEL"),textbox).text
    ne_fax = cTYPE( e.Item.FindControl("BOX_NE_FAX"),textbox).text
    ne_email = cTYPE( e.Item.FindControl("BOX_NE_EMAIL"),textbox).text
    ne_desc = cTYPE( e.Item.FindControl("BOX_NE_DESC"),textbox).text
    ne_foto1 = cTYPE( e.Item.FindControl("BOX_NE_FOTO1"),textbox).text
    ne_foto2 = cTYPE( e.Item.FindControl("BOX_NE_FOTO2"),textbox).text


    if (cTYPE( e.Item.FindControl("BOX_NE_ONLINE"),textbox).text = "True") then ne_online = 1 else ne_online = 0
    if (cTYPE( e.Item.FindControl("BOX_NE_NEW"),textbox).text = "True") then ne_new = 1 else ne_new = 0
    if (cTYPE( e.Item.FindControl("BOX_NE_SCHEDA"),textbox).text = "True") then ne_scheda = 1 else ne_scheda = 0
    if (cTYPE( e.Item.FindControl("BOX_NE_BANNER"),textbox).text = "True") then ne_banner = 1 else ne_banner = 0
    ne_img_banner = cTYPE( e.Item.FindControl("BOX_NE_IMG_BANNER"),textbox).t ext
    ne_txt_banner = cTYPE( e.Item.FindControl("BOX_NE_TXT_BANNER"),textbox).t ext
    if (cTYPE( e.Item.FindControl("BOX_NE_LOGO"),textbox).text = "True") then ne_logo = 1 else ne_logo = 0
    ne_img_logo = cTYPE( e.Item.FindControl("BOX_NE_IMG_LOGO"),textbox).tex t
    ne_sito = cTYPE( e.Item.FindControl("BOX_NE_SITO"),textbox).text



    StrConn = ConfigurationSettings.AppSettings("stringaconnessi one")
    Dim objdatabase as new Admin.Database(strconn)

    objdatabase.AggiornaDatiNegozio(ID_Negozio,ne_nome ,ne_id_tipologia,ne_icona,ne_coordx,ne_coordy,ne_i ndirizzo,ne_cap,ne_citta,ne_tel,ne_fax,ne_email,ne _desc,ne_foto1,ne_foto2,ne_online,ne_new,ne_scheda ,ne_banner,ne_img_banner,ne_txt_banner,ne_logo,ne_ img_logo,ne_sito)
    Datalist1.Databind()
    Datalist1.EditItemIndex = -1


    End Sub



    Qualcuno sa come risolvere sto' problema ?
    Per il momento ho ovviato facendo una insert e poi una delete su ID_Negozio ma non è una gran soluzione
    :master:
    Grazie a tutti e Ciao

  2. #2
    Utente di HTML.it L'avatar di mUrf
    Registrato dal
    Apr 2001
    Messaggi
    193
    Ciao Considerevole scusa ma quale oggetto hai utilizzato per collegarti ai dati ??? Non riesco a capirlo in tutte quelle righe .... se utilizzi un DataReader non credo potrai mai aggiornare i dati con un Update ... devi affidarti al connubbio DataSet+DataAdapter per fare quello che vuoi tu .... così eviti di crare dei buchi nel DB (insert and delete)


    Spero sia questa la soluzione, perchè in questo momento sono alle prese anch'io con questi benedetti oggetti...

    Byez
    mUrf .NET

  3. #3

    Cioè ?

    NN ci avevo pensato
    Il Datareader è in lettura non in modifica
    Ho capito grazie

  4. #4
    DataReader o DataSet non è quello il problema... il tuo codice a occhio mi sembra corretto, ma sono il meno adatto a controllare (uso C#). Ridai magari un'occhiata alla SP...

  5. #5

    Sicuro ?

    LA SP l'ho provata dentro Access e fa il suo dovere.
    La cosa assurda è che tutte le SP che ho creato funzionano perfettamente, Inserimento,Eliminazione e Ricerca ma non l'aggiornamento.
    BO

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    La maggior parte di problemi nel'aggiornamento di un dataset tramite un controllo Web (Come il datalist), e dovuta al PostBack della pagina. Nella parte di codice in cui assegni il DataSource del DataList, se non lo hai già fatto prova a scrivere:

    If Not Page.IsPostBack Then
    TuoDataList.DataSource = Origine_Dati
    Enf If

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

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.