Where di un update in un form non funzionante

giovedì 26 marzo 2015 - 22.06
Tag Elenco Tags  VB.NET  |  Visual Studio Express  |  SQL Server 2008  |  Office 2010  |  Chrome

mauri1961 Profilo | Senior Member

Salve a tutti,

mi ritrovo con un problema relativo alla modifica di un record in un form come si può vedere dal codice postato.

Il problema risiede nella update in quanto levando la clausola where aggiorna tutti i records altrimenti il record selezionato non si aggiorna seppure non viene segnalato alcun errore.


Considerando che uso asp.net saltuariamente sono graditi aiuti e consigli.


If operazione.Text = "MODIFICA" Then
Dim strdiv As String
Dim conPubs As SqlConnection
Dim strUpdate As String
Dim cmdUpdate As SqlCommand
Dim IntUpdateCount As String
conPubs = New SqlConnection("Data Source=xxxxxxxxx\SQLEXPRESS;Initial Catalog=notprel;User Id=mauri1961;Password=bussa1961")


strUpdate = "update corso set cso_datini = @datini, cso_datfin = @datfin, cso_aggiornamento = @aggiornamento, cso_corso = @corso, cso_descri = @descri, cso_breve = @breve, cso_anno = @anno, cso_ore = @ore, cso_cadenza = @cadenza, cso_partecipanti = @partecipanti where cso_corso = @corso"


cmdUpdate = New SqlCommand(strUpdate, conPubs)

cmdUpdate.Parameters.AddWithValue("@datini", datini.Text)
cmdUpdate.Parameters.AddWithValue("@datfin", datfin.Text)
cmdUpdate.Parameters.AddWithValue("@aggiornamento", aggiornamento.Text)
cmdUpdate.Parameters.AddWithValue("@corso", corso.Text)
cmdUpdate.Parameters.AddWithValue("@descri", descrizione.Text)
cmdUpdate.Parameters.AddWithValue("@breve", breve.Text)
cmdUpdate.Parameters.AddWithValue("@anno", anno.Text)
cmdUpdate.Parameters.AddWithValue("@ore", ore.Text)
cmdUpdate.Parameters.AddWithValue("@cadenza", cadenza.Text)
cmdUpdate.Parameters.AddWithValue("@partecipanti", partecipanti.Text)


conPubs.Open()
IntUpdateCount = cmdUpdate.ExecuteNonQuery()
conPubs.Close()

strdiv = " Record modificato correttamente. <br /><a href='scuola07.aspx'>Ritorna</a>"


risultato.Visible = True
risultato.InnerHtml = strdiv
form_blocco.Visible = False
End If
Else
risultato.InnerHtml = "Form non valido"
End If
End Sub


Grazie e saluti, Maurizio

alx_81 Profilo | Guru

> Salve a tutti,
>
>mi ritrovo con un problema relativo alla modifica di un record
>in un form come si può vedere dal codice postato.
hai provato a tracciare il comando lanciato? Potrebbero arrivare parametri errati.

>Grazie e saluti, Maurizio
di nulla!

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

mauri1961 Profilo | Senior Member

Ciao e grazie per la risposta, in effetti il campo di confronto il parametro che passavo nella where non conteneva nulla allora ho pensato di sostituirlo nell'update con il campo che mi proviene dalla pagina di selezione cioè una request.querystring che funziona in quanto il form mi appare in modo corretto, tuttavia anche in questo caso non soddisfa la where in quanto non aggiorna nulla.
Cosa sbaglio ?


strUpdate = "update corso set stu_cognome = @cognome, stu_nome = @nome, stu_nascita = @nascita, stu_codfis = @codfis, stu_locnas = @locnas, stu_indirizzo = @indirizzo, stu_cap = @cap, stu_citta = @citta, stu_provincia = @provincia, stu_partitaiva = @partitaiva, stu_collegio = @collegio, stu_telefono = @telefono, stu_mail = @mail where (stu_chiave = '" & Request.QueryString("lkcomm").ToString() & "')"

cmdUpdate = New SqlCommand(strUpdate, conPubs)

cmdUpdate.Parameters.AddWithValue("@cognome", cognome.Text)
cmdUpdate.Parameters.AddWithValue("@nome", nome.Text)
cmdUpdate.Parameters.AddWithValue("@nascita", nascita.Text)
cmdUpdate.Parameters.AddWithValue("@codfis", codfis.Text)
cmdUpdate.Parameters.AddWithValue("@locnas", locnas.Text)
cmdUpdate.Parameters.AddWithValue("@indirizzo", indirizzo.Text)
cmdUpdate.Parameters.AddWithValue("@cap", cap.Text)
cmdUpdate.Parameters.AddWithValue("@citta", citta.Text)
cmdUpdate.Parameters.AddWithValue("@provincia", provincia.Text)
cmdUpdate.Parameters.AddWithValue("@partitaiva", citta.Text)
cmdUpdate.Parameters.AddWithValue("@collegio", provincia.Text)
cmdUpdate.Parameters.AddWithValue("@telefono", telefono.Text)
cmdUpdate.Parameters.AddWithValue("@mail", mail.Text)



IntUpdateCount = cmdUpdate.ExecuteNonQuery()

conPubs.Close()

grazie ancora, Maurizio

alx_81 Profilo | Guru

>Ciao e grazie per la risposta, in effetti il campo di confronto
>il parametro che passavo nella where non conteneva nulla allora
>ho pensato di sostituirlo nell'update con il campo che mi proviene
>dalla pagina di selezione cioè una request.querystring che funziona
>in quanto il form mi appare in modo corretto, tuttavia anche
>in questo caso non soddisfa la where in quanto non aggiorna nulla.
>Cosa sbaglio ?
Maurizio, purtroppo devo tornare a sottolinearti la traccia.
Cerca di tracciare l'esatto comando che ti arriva (in debug, col profiler, stampando l'sql nella pagina, come vuoi) e probabilmente si capirà cosa va storto.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5