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

    Gestionale news - modifica news non funge :(

    Ciao a tutti!
    Da qualche settimana mi sono messo in testa di iniziare a programmare in ASP.net...

    Stavo provando a realizzare uno script per la gestione delle news, ma mi sono bloccato nella realizzazione della pagina "modifica_news.aspx", che dovrebbe modificare le news. Ecco il suo codice:

    codice:
    <%@ Page Language="VB" validaterequest="false" %>
    <%@ assembly name="ADODB" %>
    <%@ import Namespace="ADODB" %>
    <%@ import Namespace="System.Data" %>
    <script runat="server">
    
        ' Creo la connessione ed il recordset
        
         Private Connect As New ADODB.Connection
         Private Connectb As New ADODB.Connection
         Private recset As New ADODB.Recordset
        
         ' Page_Load, l'evento che si verificher al caricamento della pagina
         Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
        
         ' Verifica se si e' amministratori
        
         IF Session("amministratore") = False Then
         Response.Redirect("default.aspx")
         End IF
        
         ' Dichiara la variabile "ID" che conterrà l'ID della news passata
         dim ID = Request("ID")
        
         ' Se come ID non è stato passato un valore valido
         ' Imposta l'ID ad 1
        
         IF NOT ISNumeric(ID) or Len(ID) = 0 Then
         ID = 1
         End IF
        
         ' Se l'ID e' uguale a 0
         ' Imposta l'ID a 1
        
         IF ID = 0 Then
         ID = 1
         End IF
        
         ID = Int(ID)
        
         ' Apro la connessione ed il recordset
         Connect.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" & 
    
    Server.MapPath("/mdb-database/database.mdb"))
         ' Eseguo la query al database per estrarre la news
         RecSet.Open("SELECT TOP 1 * FROM news Where ID = " & ID &"", Connect)
        
         ' Verifica se la news realmente esiste
        
         If RecSet.EOF Then
        
             ' La news non esiste (porta l'amministratore nella pagina "Gestione_news.asp")
             Response.Redirect ("Gestione_news.aspx")
        
         Else
        
             ' La news esiste: imposta nei vari campi del modulo i vari valori
             Autore.Text = RecSet("Autore").Value
             Contenuto.Text = Replace(RecSet("Contenuto").Value, "
    ", chr(13))
             Titolo.Text = RecSet("Titolo").Value
        
         End If
        
        
         RecSet.Close
         Connect.Close
        
        
        End Sub
        
        ' Evento che si verifica al click sul tasto "Modifica News"
        ' (modifica la news nel db)
        Sub Modifica_news_Click(sender As Object, e As EventArgs)
        
         ' Verifica che tutti i campi del modulo siano stati compilati
         IF Page.Isvalid Then
        
         ' Apro la connessione
         Connectb.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" & 
    
    Server.MapPath("/mdb-database/database.mdb"))
         ' Eseguo la query per modifica la news nel database
         Connectb.Execute("Update news set Titolo = '" & Titolo.Text &"', Contenuto = '" & 
    
    Replace(Contenuto.Text, chr(13), "
    ") &"', Autore = '" & Autore.Text &"' where id = 21", 2)
         Connectb.Close
        
         ' Porta l'amministratore in "Gestione_news.aspx"
         Response.Redirect("Gestione_news.aspx")
         End IF
        End Sub
    
    </script>
    <html>
    <head>
        <title>Gestione news - Aggiungi news - Amministrazione</title>
    </head>
    <body>
        <form runat="server">
            <p align="center">
                <font face="Verdana" size="4">Gestione News -Modifica 
    
    news</font> 
            </p>
            <table cellspacing="0" cellpadding="0" width="100%" border="0">
                <tbody>
                    <tr>
                        <td width="19%">
                            <font face="Verdana" size="2">Titolo news:</font></td>
                        <td width="81%">
                            <font face="Verdana" size="2">
                            <asp:TextBox id="Titolo" runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator id="Validatore1" runat="server" 
    
    ControlToValidate="Titolo" ErrorMessage="*"></asp:RequiredFieldValidator>
                            </font></td>
                    </tr>
                    <tr>
                        <td width="19%">
                            <font face="Verdana" size="2">Contenuto news:</font></td>
                        <td width="81%">
                            <asp:TextBox id="Contenuto" runat="server" TextMode="MultiLine" 
    
    Height="133px" Width="372px"></asp:TextBox>
                            <asp:RequiredFieldValidator id="Validatore2" runat="server" 
    
    ControlToValidate="Contenuto" ErrorMessage="*"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td width="19%">
                            <font face="Verdana" size="2">Autore news:</font></td>
                        <td width="81%">
                            <font face="Verdana" size="2">
                            <asp:TextBox id="Autore" runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator id="Validatore3" runat="server" 
    
    ControlToValidate="Autore" ErrorMessage="*"></asp:RequiredFieldValidator>
                            </font></td>
                    </tr>
                    <tr>
                        <td width="100%" colspan="2">
                            <font face="Verdana" size="2">
                            <asp:Button id="Modifica_news" onclick="Modifica_news_Click" 
    
    runat="server" Text="Modifica news"></asp:Button>
                            </font></td>
                    </tr>
                </tbody>
            </table>
            
    
    
                <a href="Gestione_news.aspx"><font face="Verdana" size="2">Torna alla Gestione
                delle news</font></a> 
            </p>
            
    
    
            </p>
        </form>
    </body>
    </html>
    Alla pagina viene passato l'id della news (modifica_news.aspx?id=ID NEWS) e sembra tutto funzionare. Però quando tento di modificare la news nel db, non la modifica! Mi dite dove ho sbagliato?

    Salvatore
    http://mirabilweb.altervista.org - > Scarica il mio nuovo libro ed iscriviti alla mia newsletter
    http://www.hardwaremax.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    codice:
    Sub Modifica_news_Click(sender As Object, e As EventArgs)
    
    ' Verifica che tutti i campi del modulo siano stati compilati
    IF Page.Isvalid Then
    
    ' Apro la connessione
    Connectb.Open("driver={Microsoft Access Driver(*.mdb)};dbq="&Server.MapPath("/mdb-database/database.mdb"))
    ' Eseguo la query per modifica la news nel database
    Connectb.Execute("Update news set Titolo = '" & Titolo.Text &"', Contenuto = '" & Replace(Contenuto.Text, chr(13), 
    ") &"', Autore = '" & Autore.Text &"' where id = " & Request.Querystring("ID") & ",2)
    Connectb.Close
    
    ' Porta l'amministratore in "Gestione_news.aspx"
    Response.Redirect("Gestione_news.aspx")
    End IF
    End Sub
    forse x questo .. guarda ke cmq tu nn stai sfruttanto al massimo asp .net, visto ke usi ancora adodb..
    il nuovo ado .net è molto + performanete

  3. #3
    cosi il codice è inleggibile, metti tutto il codice tra i tag [code ] e [/code ] (senza spazi) che magari si capisce un po di più

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    Originariamente inviato da DeBe99
    cosi il codice è inleggibile, metti tutto il codice tra i tag [code ] e [/code ] (senza spazi) che magari si capisce un po di più
    magari nn sa nemmeno cos'è il [ code]

  5. #5
    Originariamente inviato da sms
    magari nn sa nemmeno cos'è il [ code]
    adesso lo sà

  6. #6
    Ciao!

    > forse x questo ..

    ho fatto una prova: ho eliminato la parte che prende le info della news dal database e le mostra nei vari campi, lasciando solo la sub x modificare la news e funzionava... Quindi penso che ci sia un conflitto fra le due connessioni al database...

    > guarda ke cmq tu nn stai sfruttanto al massimo asp .net, visto ke usi ancora adodb..
    il nuovo ado .net è molto + performanete

    lo so.. io provengo da programmazione asp e mi trovo abbastanz a bene con le ado... per il momento eviterei di usare le ado.net (se tu hai qualche guida sulle ado.net passamela )

    Fammi sapere!

    Salvatore
    http://mirabilweb.altervista.org - > Scarica il mio nuovo libro ed iscriviti alla mia newsletter
    http://www.hardwaremax.it

  7. #7
    ho messo il tutto fra
    codice:
     e



    Salvatore
    http://mirabilweb.altervista.org - > Scarica il mio nuovo libro ed iscriviti alla mia newsletter
    http://www.hardwaremax.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    domanda stupida: nn è ke nel campo ID ci sono due ID identici ?

    niente domanda stupida:
    RecSet.Open("SELECT TOP 1 * FROM news Where ID = " & ID &"", Connect)

    cmq in teoria quel TOP 1 nn avrebbe senso, xkè se il contenuto del campo ID nn si può ripetere, è già preso il primo e unico

  9. #9
    hai provato a stamparti la stringa sql per vedere cosa tira fuori:
    codice:
        ' Evento che si verifica al click sul tasto "Modifica News"
        ' (modifica la news nel db)
        Sub Modifica_news_Click(sender As Object, e As EventArgs)
        
         ' Verifica che tutti i campi del modulo siano stati compilati
         IF Page.Isvalid Then
        
         ' Apro la connessione
         Connectb.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" & 
    
    Server.MapPath("/mdb-database/database.mdb"))
         ' Eseguo la query per modifica la news nel database
         
         sqlString as string="Update news set Titolo = '" & Titolo.Text &"', Contenuto = '" & 
    
    Replace(Contenuto.Text, chr(13), "
    ") &"', Autore = '" & Autore.Text &"' where id = " & Request.Querystring("ID")
         Response.Write(sqlString)
         Connectb.Execute(sqlString,2)
         Connectb.Close
        
         ' Porta l'amministratore in "Gestione_news.aspx"
         Response.Redirect("Gestione_news.aspx")
         End IF
        End Sub

  10. #10
    ... impossibile... come ci possono essere due ID uguali?
    Però quando si modifica la news.. ovviamente va a prendere l'id passato: modifica_news.asp?ID=ID PASSATO

    Update set .... from news where ID = " & Request("ID") &"

    Salvatore
    http://mirabilweb.altervista.org - > Scarica il mio nuovo libro ed iscriviti alla mia newsletter
    http://www.hardwaremax.it

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.