Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di osgb
    Registrato dal
    May 2004
    residenza
    Monza
    Messaggi
    179

    [VB.NET] Non riesco ad aggiornare il record

    Salve, non riesco ad aggiornare un record di un database access nonostante non mi dia nessun errore.

    Al caricamento della pagina legge questo nel file separato:
    Codice PHP:
    Dim codeAvviso As Integer Request.QueryString("idavv")
    ' Apro la connessione
            Dim conDb As OleDbConnection
            Dim strSQLControllo As String
            Dim cmdSql As OleDbCommand

            conDb = New OleDbConnection("PROVIDER=Microsoft.JET.OleDb.4.0; Data source=" & Server.MapPath("~/app_data/DatiSito.mdb"))

            ' 
    Query cmd
            strSQLControllo 
    "SELECT * FROM Avvisi WHERE [IDNews] = " codeAvviso ";"
            
    cmdSql = New OleDbCommand(strSQLControlloconDb)
            
    conDb.Open()
            
    ' Recupero il primo dato restituito delle query
            Dim dr As OleDbDataReader = cmdSql.ExecuteReader()

            ' 
    Sostituisce un numero in stringa e lo assegna per visualizzarlo nella label della pagina aspx
            
    While dr.Read()
                
    IDNewsDB.Value dr("IDNews")
                
    TitoloNewsDB.Text dr("TitoloNews").ToString()
                
    TitoloNewsDB.Text = (Replace(TitoloNewsDB.Text"
    "
    vbCrLf))
                
    TestoNewsDB.Text dr("TestoNews").ToString()
                
    TestoNewsDB.Text = (Replace(TestoNewsDB.Text"
    "
    vbCrLf))
            
    End While

            
    conDb.Close() 
    Nella pagina aspx ho questo:
    Codice PHP:
    <asp:HiddenField ID="IDNewsDB" runat="server" />
        
    Titolo avviso

        
    <asp:TextBox ID="TitoloNewsDB" runat="server" Width="100%" ></asp:TextBox>
        
    Testo 

        

        
    <asp:TextBox ID="TestoNewsDB" runat="server" Width="100%" Rows="12" TextMode="MultiLine"></asp:TextBox>
    <
    asp:Button ID="NewsAGG" runat="server" Text="Modifica avviso" /> 
    Modifico i dati e premo il tasto aggiorna collegato al file separato:
    Codice PHP:
    Protected Sub NewsAGG_Click(sender As ObjectAs System.EventArgsHandles NewsAGG.Click
            
    If (Page.IsValidThen

                Dim IdentAvv 
    As Integer IDNewsDB.Value

                Dim NTitolo 
    As String TitoloNewsDB.Text
                NTitolo 
    = (Replace(NTitolo"´""'"))
                
    NTitolo = (Replace(NTitoloChr(34), "´´"))
                
    NTitolo = (Replace(NTitolovbCrLf"
    "
    ))

                
    Dim NTesto As String TestoNewsDB.Text
                NTesto 
    = (Replace(NTesto"´""'"))
                
    NTesto = (Replace(NTestoChr(34), "´´"))
                
    NTesto = (Replace(NTestovbCrLf"
    "
    ))

                
    Dim conDbx = New OleDbConnection("PROVIDER=Microsoft.JET.OleDb.4.0; Data source=" Server.MapPath("~/app_data/DatiSito.mdb"))
                
    Dim strSqlx As String "UPDATE Avvisi SET TitoloNews = @ftitolo, TestoNews = @ftesto WHERE IDNews = " IdentAvv ";"
                
    Dim cmdSqlx As New OleDbCommand(strSqlxconDbx)

                
    Dim coll As OleDbParameterCollection
                coll 
    cmdSqlx.Parameters

                coll
    .Add("@ftitolo"OleDbType.WChar)
                
    coll("@ftitolo").Value NTitolo

                coll
    .Add("@ftesto"OleDbType.WChar)
                
    coll("@ftesto").Value NTesto

                
    Try
                    
    conDbx.Open()

                    
    cmdSqlx.ExecuteNonQuery()

                Catch
                    
    ' msg.text = "Errore aggiornamento dati"

                Finally
                    conDbx.Close()

                End Try

                Response.Redirect("~/Default.aspx", True)

            End If

        End Sub 
    NON CI SONO ERRORI, MA NON MODIFICA.
    Qualcuno sa dove sbaglio, grazie!

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    quando si è in questi scenari, la prima cosa da fare è provare la query dal client

  3. #3
    Utente di HTML.it L'avatar di osgb
    Registrato dal
    May 2004
    residenza
    Monza
    Messaggi
    179
    Mi potrebbe fare un esempio, grazie

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    intendevo di lanciare la query in Management studio (se SQL Server) o il client predefinito per il db che usi...

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    L'aggiornamento avviene senza errori ma vengono aggiornati sempre i vecchi dati.
    Guarda l'esempio
    codice:
    Option Strict Off
    
    Partial Class prove_a
        Inherits System.Web.UI.Page
    
        Private stringaConnessione As String = "PROVIDER=Microsoft.JET.OleDb.4.0; Data source=c:\tmp\database1.mdb"
    
        Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            If Not Me.IsPostBack Then
                leggi()
            End If
        End Sub
    
        Protected Sub NewsAGG_Click(sender As Object, e As System.EventArgs) Handles NewsAGG.Click
            If (Page.IsValid) Then
    
                Dim IdentAvv As Integer = IDNewsDB.Value
    
                Dim NTitolo As String = TitoloNewsDB.Text
                NTitolo = (Replace(NTitolo, "´", "'"))
                NTitolo = (Replace(NTitolo, Chr(34), "´´"))
                NTitolo = (Replace(NTitolo, vbCrLf, "
    "))
    
                Dim NTesto As String = TestoNewsDB.Text
                NTesto = (Replace(NTesto, "´", "'"))
                NTesto = (Replace(NTesto, Chr(34), "´´"))
                NTesto = (Replace(NTesto, vbCrLf, "
    "))
    
                Dim conDbx = New OleDbConnection(stringaConnessione)
                Dim strSqlx As String = "UPDATE Avvisi SET TitoloNews = @ftitolo, TestoNews = @ftesto WHERE IDNews = " & IdentAvv & ";"
                Dim cmdSqlx As New OleDbCommand(strSqlx, conDbx)
    
                Dim coll As OleDbParameterCollection
                coll = cmdSqlx.Parameters
    
                coll.Add("@ftitolo", OleDbType.VarChar)
                coll("@ftitolo").Value = NTitolo
                coll("@ftitolo").Size = 255
    
    
                coll.Add("@ftesto", OleDbType.VarChar)
                coll("@ftesto").Value = NTesto
                coll("@ftesto").Size = 255
    
                Try
                    conDbx.Open()
    
                    cmdSqlx.ExecuteNonQuery()
    
                Catch ex As Exception
                    'msg.text = "Errore aggiornamento dati"
                    l.MsgBox(Me, ex)
    
                Finally
                    conDbx.Close()
    
                End Try
    
                'Response.Redirect("~/Default.aspx", True)
    
            End If
    
        End Sub
    
        Private Sub leggi()
            Dim codeAvviso As Integer = 3 'Request.QueryString("idavv")
            ' Apro la connessione
            Dim conDb As OleDbConnection
            Dim strSQLControllo As String
            Dim cmdSql As OleDbCommand
    
            conDb = New OleDbConnection(stringaConnessione)
    
            ' Query cmd
            strSQLControllo = "SELECT * FROM Avvisi WHERE [IDNews] = " & codeAvviso & ";"
            cmdSql = New OleDbCommand(strSQLControllo, conDb)
            conDb.Open()
            ' Recupero il primo dato restituito delle query
            Dim dr As OleDbDataReader = cmdSql.ExecuteReader()
    
            ' Sostituisce un numero in stringa e lo assegna per visualizzarlo nella label della pagina aspx
            While dr.Read()
                IDNewsDB.Value = dr("IDNews")
                TitoloNewsDB.Text = dr("TitoloNews").ToString()
                TitoloNewsDB.Text = (Replace(TitoloNewsDB.Text, "
    ", vbCrLf))
                TestoNewsDB.Text = dr("TestoNews").ToString()
                TestoNewsDB.Text = (Replace(TestoNewsDB.Text, "
    ", vbCrLf))
            End While
    
            conDb.Close()
    
        End Sub
    
    End Class
    Pietro

  6. #6
    Utente di HTML.it L'avatar di osgb
    Registrato dal
    May 2004
    residenza
    Monza
    Messaggi
    179
    Così funziona!
    GRAZIE MILLE. Non so come ringraziarvi.

    Effettivamente andava a riscrivere il vecchio dato.

    Un saluto.

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.