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

    Update Sql non funziona

    Secondo voi xchè non funziona ?

    codice:
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim conn As SqlConnection
    Dim cmd As SqlCommand
    Dim RecordsAffected As Integer
    Dim cmdString As String = "Update Anagrafica Set nome = '" & TextBox1.Text & "' WHERE id = '1'"
    conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & pAssoluto & "\App_Data\" & nomeDb & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
    cmd = New SqlCommand(cmdString, conn)
    conn.Open()
    
    RecordsAffected = cmd.ExecuteNonQuery()
    conn.Close()
    End Sub

  2. #2

    i motivi potrebbero essere tanti....
    in che senso non funziona? di da errore? si schianta la pagina? non fa nulla?

    potrebbe essere questo:
    codice:
    conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & _
                        pAssoluto & "\App_Data\" & nomeDb & _
                        ";Integrated Security=True;Connect Timeout=30;User Instance=True")
    nel senso che il path del database non è corretto

    potrebbe essere questo:
    codice:
    Dim cmdString As String = "Update Anagrafica Set nome = '" & TextBox1.Text & "' WHERE id = '1'"
    nel senso che nella textbox c'è un apostrofo,
    oppure che id non è testo ma numerico

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    La prima cosa da fare in questi casi e' prendere (in debug) la query e lanciarla sul DB per vedere se sintatticamente e' generata in modo corretto dal codice.

    Comuque, please:

    1 - Usa il tag code per racchiudere il codice, cosi' (com'era prima) è POCO leggibile.

    2 - Domande come questa, poste in queso modo, costituiscono thread quasi inutili.
    E' --impossibile-- risalire alla causa dell'errore (che non citi) se non descrivi lo scenario e dai qualche informazione in piu'.

    Ti prego di osservare queste semplici regole, altrimenti sprechiamo soltanto spazio nel DB di Html

  4. #4
    scusate se ho inserito il codice senza il tag.
    per quanto riguarda la richiesta, l'errore non esiste in effetti, ovvero non succede nulla. Rileggendo il codice mi sono reso conto di aver dimenticato di inserire prima
    If Not IsPostBack

    .... codice

    end if
    in effetti il sistema non sbagliava ma non modificava nulla per il semplice fatto che non rilevava alcuna modifica ricaricando la pagina come se fosse in origine.

    Ho risolto così

    per la prossima volta spero di non fare errori nella richiesta grazie ugualmente a tutti

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    bene, figurati

    (anche se non ho capito, perchè quel codice non è nel Page_Load, ma nel click del bottone :master: )

  6. #6
    scusa....un'istruzione update non va generata da un'evento click ? quindi quando confermo le modifiche ?

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da cpsio
    scusa....un'istruzione update non va generata da un'evento click ? quindi quando confermo le modifiche ?
    ci sono tanti modi, dipende da come hai strutturato la pagina ed a cosa è legato l'update...

    Se ho:

    - una textbox dove metto un nuovo valore
    - un pulsante che fa l'update

    non capisco come possa influire il postback se il codice è, appunto, nel gestore del click del bottone, a meno che il flusso non sia influenzato da qualche altra parte nel ciclo di vita della pagina..

    Ma se funziona, ben venga. Ciao

  8. #8
    Sono daccordo con te....sono appena approdato a d ASP NET quindi non conosco ancora bene i comportamenti del sistema tuttavia ho rilevato che non succedeva nulla perchè ricaricando attraverso Page_Load venivano ricaricati i valori in origine ti posto tutto il codice cosi forse riesco ad essere più chiaro...in ogni caso ti invito a suggerirmi altre strade piuttosto che continuare a fare errori
    codice:
    Partial Class Modifica3
        Inherits System.Web.UI.Page
    
        Dim x As String
        Dim pAssoluto As String = Server.MapPath(x)
        Dim nomeDb As String = "Database.mdf"
        Dim cartella As String = Server.MapPath("FileUpload\")
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
            If Not IsPostBack Then ' Questo significa che se la pagina non è stata ricaricata da un evento 
                'deve compiere le operazioni che seguono, altrimenti no.
                Dim queryString As String = "Select * From Anagrafica where id = '1';"
                Dim connection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & pAssoluto & "\App_Data\" & nomeDb & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
                Dim command As New SqlCommand(queryString, connection)
                connection.Open()
    
                Dim reader As SqlDataReader = command.ExecuteReader()
                If reader.HasRows Then
                    reader.Read()
                    't.Text = reader("nome")
                    TextBox1.Text = reader("nome")
                    TextBox2.Text = reader("cognome")
                    DropDownList1.Text = reader("tipoProdotto")
                End If
    
                Dim pTextBox As New TextBox
                Me.Page.Form.Controls.Add(pTextBox)
            End If
    
            'If Not IsPostBack Then ' Questo significa che se la pagina non è stata ricaricata da un evento 
            'deve compiere le operazioni che seguono, altrimenti no.
            Dim qs2 As String = "Select * from TProdotti where Prodotti = '" & DropDownList1.Text & "'"
            Dim connection2 As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & pAssoluto & "\App_Data\" & nomeDb & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
            Dim command2 As New SqlCommand(qs2, connection2)
            connection2.Open()
            Dim reader2 As SqlDataReader = command2.ExecuteReader()
    
            If reader2.HasRows Then
                reader2.Read()
                TextBox3.Text = reader2("Prodotti")
            End If
            'Label1.Text = "Pippo"
            'End If
        End Sub
    
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim conn As SqlConnection
            Dim cmd As SqlCommand
            Dim RecordsAffected As Integer
            Dim cmdString As String = "Update Anagrafica Set nome = '" & TextBox1.Text & "', tipoProdotto = " & DropDownList1.Text & " WHERE id = 1"
            conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & pAssoluto & "\App_Data\" & nomeDb & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
            cmd = New SqlCommand(cmdString, conn)
            conn.Open()
    
            RecordsAffected = cmd.ExecuteNonQuery()
            If (cmd.ExecuteNonQuery()) Then
                Response.Write("
     Dato MODIFICATO correttamente 
    ")
            Else
                Response.Write("
     ERRORE Sulla Mofifica 
    ")
            End If
            conn.Close()
    
        End Sub
    
    
    End Class

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    "If not IsPostback" significa letteralmente: "Se è la prima esecuzione della pagina".

    Un consiglio: le operazioni che riguardano gli accessi al DB vanno racchiuse nei blocchi Try...Catch..Finally.


    codice:
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
         Try
               Dim conn As SqlConnection
               Dim cmd As SqlCommand
               Dim RecordsAffected As Integer
    
               Dim cmdString As String = "Update Anagrafica Set nome = '" & TextBox1.Text & "', tipoProdotto = " & DropDownList1.Text & " WHERE id = 1"
    
               conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & pAssoluto & "\App_Data\" & nomeDb & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
    
               cmd = New SqlCommand(cmdString, conn)
               conn.Open()
    
               RecordsAffected = cmd.ExecuteNonQuery()
               cmd.ExecuteNonQuery()
               Response.Write("
     Dato MODIFICATO correttamente 
    ")
          Catch ex as Exception
                Response.Write(ex.Message)
          Finally
                conn.Close()
          End Try
        End Sub
    End Class

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.