Update non funziona Web Form

domenica 05 dicembre 2010 - 20.44
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows XP  |  Visual Studio 2008  |  SQL Server Express

max1997 Profilo | Newbie

Buongiorno, non riesco a fare l'update di dati inseriti su una pagina Web dopo averli inseriti ricavandoli da una tabella id DB Sql . Svolgimento
dalla pagina iniziale ricavo il codice identità per ricercare nel DB "Label1.Text = Request.QueryString("codice")" - con una Select ricavo i dati e riempio i miei campi nel WebForm , fin qui tutto ok . Ora alcuni dei campi del WebForm possono essere modificati , con un click su un Bottone vorrei che queste modifiche venissero salvate , nessun messaggio di errore ma nulla viene salvato. Posto il codice di update , grazie per eventale help. (ho aggiunto il response write e i dati per la query mi sembrano corretti) . MR
Dim ra As Integer
sConnectionString = "Data Source=aaaa\aaaa;Initial Catalog=aaaa;User Id=aaaa; Password=aaaa;"
Dim objConn As New SqlConnection(sConnectionString)
objConn.Open()
myCommand = New SqlCommand("Update Principale Set codprg=@CodID,Chiusa=@Chiusa,@DataChiusa=DataChiusa,@UserChiusa=UserChiusa,@UserPresaCarico=UserPresaCarico,@DataPresaCarico=DataPresaCarico,@Stato=Stato,@Immagine=Immagine,@TipoStato=TipoStato Where codprg =" & Request.QueryString("codice"), objConn)
Response.Write("Update Principale Set Chiusa=@Chiusa,@DataChiusa=DataChiusa,@UserChiusa=UserChiusa,@UserPresaCarico=UserPresaCarico,@DataPresaCarico=DataPresaCarico,@Stato=Stato,@Immagine=Immagine,@TipoStato=TipoStato Where codprg =" & Request.QueryString("codice"))
Response.Flush()
myCommand.Parameters.Add(New SqlParameter("@Chiusa", SqlDbType.NChar, 1))
myCommand.Parameters("@Chiusa").Value = TextBox16.Text
myCommand.Parameters.Add(New SqlParameter("@DataChiusa", SqlDbType.DateTime, 8))
myCommand.Parameters("@DataChiusa").Value = TextBox15.Text
myCommand.Parameters.Add(New SqlParameter("@UserChiusa", SqlDbType.NVarChar, 50))
myCommand.Parameters("@UserChiusa").Value = TextBox14.Text
myCommand.Parameters.Add(New SqlParameter("@UserPresaCarico", SqlDbType.NVarChar, 50))
myCommand.Parameters("@UserPresaCarico").Value = TextBox12.Text
myCommand.Parameters.Add(New SqlParameter("@DataPresaCarico", SqlDbType.DateTime, 8))
myCommand.Parameters("@DataPresaCarico").Value = TextBox13.Text
myCommand.Parameters.Add(New SqlParameter("@Stato", SqlDbType.Int, 4))
myCommand.Parameters("@Stato").Value = TextBox21.Text
myCommand.Parameters.Add(New SqlParameter("@Immagine", SqlDbType.NVarChar, 50))
myCommand.Parameters("@Immagine").Value = TextBox20.Text
myCommand.Parameters.Add(New SqlParameter("@TipoStato", SqlDbType.NVarChar, 50))
myCommand.Parameters("@TipoStato").Value = TextBox19.Text
ra = myCommand.ExecuteNonQuery()
objConn.Close()

paoval72 Profilo | Senior Member

La prima cosa che mi viene in mente è un possibile problema sulle date. Se lanci la query dierttamente da DB, funziona o ti restituisce un errore?

Ciao,
PV

max1997 Profilo | Newbie

Grazie per la risposta , ma una query simile con il comando Insert funziona pefettamente con le date che descrivo . Piuttosto pensavo che eseguissi il codice prima o dopo il reload della pagina , per cui mi perde le informazioni e non salva nulla . non sono molto afferrato , ho letto di usare page.postback o .... Come funziona il codice da lato client a lato server ? Grazie per help

paoval72 Profilo | Senior Member

Le tue istruzioni sono tutte lato server. Al click del button, ripassa dal page_load, poi va sull'evento click, ma non perde i dati inseriti.
ma dopo l'update, sul db i dati sono aggiornati oppure restano quelli vecchi?

max1997 Profilo | Newbie

Purtroppo restano quelli vecchi . Non capisco mi sembra tutto ok eppure non aggiorna nulla.Aggiungo che ho provato a mettere un blocco sul codice all'interno della routine di update al livello
ra = myCommand.ExecuteNonQuery()
andando a leggere cosa riportano le textbox in questo momento , i dati nei campi sono quelli vecchi e non quelli appena compilati .cosa diavolo sbaglio ?Grazie per help

aabruzzese Profilo | Junior Member

codprg=@CodID

non lo visto due volte, non ci vuole nelle due istruzione?

Angelo Abruzzese

max1997 Profilo | Newbie

Scusate ma copy and paste ho preso una riga commentata la riga giusta inserita è ("Update Principale Set Chiusa=@Chiusa,@DataChiusa=DataChiusa,@UserChiusa=UserChiusa,@UserPresaCarico=UserPresaCarico,@DataPresaCarico=DataPresaCarico,@Stato=Stato,@Immagine=Immagine,@TipoStato=TipoStato Where codprg =" & Request.QueryString("codice"))
Il problema rimane non aggiorna i dati nel DB , non ricevo segnalazioni di errori .
Ho letto un tread dove un collega aveva lo stesso problema , ma se faceva partire il pgm dal debug funzionava , succede ad altri ? non capisco il problema.
Grazie

aabruzzese Profilo | Junior Member

Ciao,

Ai provato di modificare una colonna alla volta fina a quando vedi il update che funzione o non funzione pui?

Cosi potrai isolare il problema.



max1997 Profilo | Newbie

Salve, pensavo di aver risolto ma invece no , nel senso che l'update me lo fa solo per il campo Chiusa=@Chiusa . Ho provato anche a scambiare le posizioni ma nulla .
myCommand.Parameters.Add(New SqlParameter("@Chiusa", SqlDbType.NChar, 1))
myCommand.Parameters("@Chiusa").Value = TextBox17.Text
myCommand.Parameters.Add(New SqlParameter("@DataChiusa", SqlDbType.DateTime, 8))
myCommand.Parameters("@DataChiusa").Value = TextBox22.Text
myCommand.Parameters.Add(New SqlParameter("@UserChiusa", SqlDbType.NVarChar, 50))
myCommand.Parameters("@UserChiusa").Value = TextBox23.Text
myCommand.Parameters.Add(New SqlParameter("@UserPresaCarico", SqlDbType.NVarChar, 50))
myCommand.Parameters("@UserPresaCarico").Value = TextBox24.Text
'myCommand.Parameters.Add(New SqlParameter("@DataPresaCarico", SqlDbType.DateTime, 8))
'myCommand.Parameters("@DataPresaCarico").Value = TextBox25.Text
myCommand.Parameters.Add(New SqlParameter("@Stato", SqlDbType.Int, 4))
myCommand.Parameters("@Stato").Value = TextBox26.Text
myCommand.Parameters.Add(New SqlParameter("@Immagine", SqlDbType.NVarChar, 50))
myCommand.Parameters("@Immagine").Value = TextBox27.Text
myCommand.Parameters.Add(New SqlParameter("@TipoStato", SqlDbType.NVarChar, 50))
myCommand.Parameters("@TipoStato").Value = TextBox28.Text
Grazie per l'Help.

paoval72 Profilo | Senior Member

Bravi! Forse ci siamo!
Non mi ero accorto che in questa query hai invertito il parametro e il nome colonna. Ti funziona per il primo campo perchè è corretto:
Chiusa=@Chiusa
Invece, dopo sono invertiti. Ad esempio.
,@DataChiusa=DataChiusa

Basta sistemarli:
,DataChiusa=@DataChiusa

Ottimismo e... buona serata!
PV
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