8 messaggi dal 25 ottobre 2010
Salve a tutti.
Premetto SONO NUOVO Di ASP.NET e dopo aver comprato il testo "ASP.NET in C#E VB.NET" editore HOEPLI sto cercando di creare alcune applicazioni a livello base.

Ho creato una piccola applicazione di test del controllo SQLDATASOURCE.
Ho problemi ad eseguire il comando UPDATE da un controllo SQLDATASOURCE.
Ho controllato i parametri vengono correttamente passati al controllo SQLDATASOURCE ma nulla da fare il record non si aggiorna.
DOVE SBAGLIO ???
Sto passando correttamente i parametri ???

In SOSTANZA:
=============
Esiste una pagina main dove con un controllo REPEATER elenco una serie di records di Employees
Seleziono per variarlo uno di questi records.
Viene caricata una pagina di UPDATE dove richiedo NOME E COGNOME sotto forma di text box.
Nella FORM esiste un bttone SALVA per eseguire il salvataggio del record selezionato e dei campi NOME E COGNOME con i nuovi valori.

Allego listing.
Grazie in anticipo a TUTTI...

==================================================

Imports System.Data
Imports System.Data.SqlClient

Partial Class Update
Inherits System.Web.UI.Page

Public OldId As String
Public NuovoNome As String
Public NuovoCognome As String


Protected Sub Salva(ByVal sender As Object, ByVal e As System.EventArgs) Handles bottone.Click

' Aggiornare Nome e Cognome con i valori NUOVI !!!!

SqlDataSource1.UpdateParameters("original_EmployeeID").DefaultValue = OldId
SqlDataSource1.UpdateParameters("FirstName").DefaultValue = NuovoNome
SqlDataSource1.UpdateParameters("LastName").DefaultValue = NuovoCognome

SqlDataSource1.Update()

bottone.Visible = False
messaggio.Text = "Inserimento effettuato con successo!"


End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

'Valorizza TEXT BOXES soltanto la prima volta
If Not IsPostBack Then
Dim dv As DataView = DirectCast(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
For Each drv As DataRowView In dv
OldId = drv("EmployeeID").ToString()
nome.Text = drv("FirstName").ToString()
cognome.Text = drv("LastName").ToString()

Next
End If

End Sub

Protected Sub nome_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles nome.TextChanged
NuovoNome = nome.Text
End Sub

Protected Sub cognome_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cognome.TextChanged
NuovoCognome = cognome.Text
End Sub
End Class


==================================================




103 messaggi dal 04 ottobre 2010
Potresti sottoscrivere l'evento SqlDataSource Updated, eccoti le specifiche:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.updated.aspx
Mettendo un breakpoint all'interno, sarà possibile consultare l'event args di tipo SqlDataSourceStatusEventArgs che contiene informazioni utili come:
AffectedRows -> il numero di record che sono stati coinvolti dal comando

Exception -> Un'eventuale eccezione avvenuta all'interno del DBMS

Purtroppo a livello di codice non credo di poter scoprire cos'è successo: forse questo breakpoint ti saprà rispondere più di me  .

Se non è un errore del DBMS, altre possibili cause che mi vengono in mente potrebbero essere: la visuale non si aggiorna, oppure la query in qualche modo va a prendere i vecchi valori come nuovi.
Modificato da Biohazard il 23 agosto 2012 10.50 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.