File .aspx:

<%@ Page Language="VB" Inherits="Selezione" src="Selezione_Cliente.vb" %>

<html>
<head>
</head>
<body>
<form method="post" runat="server">



Seleziona un cliente:
<aspropDownList id="lstclienti" runat="server" Width="139px" AutoPostBack="True"></aspropDownList>

<asp:Button id="cmdupdate" runat="server" Text="Update"></asp:Button>

<asp:Button id="cmddelete" runat="server" Text="Delete"></asp:Button>




ID Univoco:
<asp:Textbox id="txtid" runat="server"></asp:Textbox>


Nome: <asp:Textbox id="txtnome" runat="server"></asp:Textbox>


Cognome: <asp:Textbox id="txtcognome" runat="server"></asp:Textbox>


Indirizzo: <asp:Textbox id="txtindirizzo" runat="server" Width="195px"></asp:Textbox>


Citta':
<asp:Textbox id="txtcitta" runat="server"></asp:Textbox>
</p>



<asp:Label id="lblerr" runat="server"></asp:Label>
</p>
</form>
</body>
</html>

File vb.net (code behind):

Imports Microsoft.VisualBasic
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Data
Imports System.Data.OleDb


Public Class Selezione
Inherits Page

Protected withevents lstclienti as DropDownList
Protected txtid as TextBox
Protected txtnome as TextBox
Protected txtcognome as TextBox
Protected txtindirizzo as TextBox
Protected txtcitta as TextBox
Protected lblerr as Label
Protected withevents cmdupdate as Button
Protected withevents cmddelete as Button

Private Sub Page_Load (sender as Object, e as EventArgs) Handles MyBase.Load

if Me.IsPostBack = False Then
Compilazione()
End if

End Sub

Private function Compilazione()

lstclienti.Items.Clear()


Dim conn as New OleDbConnection()
conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0;" & "Data Source=f:/Esercizi_ASPNET/Database/clienti.mdb"

Dim cmd as New OleDbCommand()
cmd.Connection = conn
cmd.CommandText="SELECT NOME, COGNOME, ID FROM clienti"

Dim reader as OleDbDataReader

Try

conn.Open()
reader=cmd.ExecuteReader()

Do While reader.Read()

Dim Item as New ListItem()
Item.Text=reader("NOME") & ", " & reader("COGNOME")
Item.Value=reader("ID")
lstclienti.Items.Add(Item)

Loop

reader.Close()

Catch err as Exception

lblerr.Text = "ATTENZIONE: Errore nella lettura dei dati. "
lblerr.Text &= err.Message

Finally

if (Not conn is Nothing) Then
conn.close()
end if

End try
End function

Private sub lstclienti_SelectedIndexChanged (sender as Object, e as EventArgs) Handles lstclienti.SelectedIndexChanged

Dim conn as New OleDbConnection()
conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0;" & "Data Source=f:/Esercizi_ASPNET/Database/clienti.mdb"

Dim cmd as New OleDbCommand()
cmd.Connection = conn
cmd.CommandText="SELECT * FROM clienti WHERE ID=" & lstClienti.SelectedItem.Value & ""

Dim reader as OleDbDataReader

Try

conn.Open()
reader=cmd.ExecuteReader()

reader.Read()

txtid.Text = reader("ID")
txtnome.Text = reader("NOME")
txtcognome.Text = reader("COGNOME")
txtindirizzo.Text = reader("INDIRIZZO")
txtcitta.Text = reader("CITTA")

reader.Close()

Catch err as Exception

lblerr.Text = "ATTENZIONE: Errore nella visualizzazione dei dati. "
lblerr.Text &= err.Message

Finally

if (Not conn is Nothing) Then
conn.close()
end if

End try

End Sub

Private sub cmdupdate_Click (sender as object, e as EventArgs) Handles cmdupdate.Click

Dim UpdateSQL as String
UpdateSQL = "UPDATE clienti SET NOME='txtnome.Text', COGNOME='txtcognome.Text', INDIRIZZO='txtindirizzo.Text', CITTA='txtcitta.Text' WHERE ID='lstclienti.SelectedItem.Value'"
' UpdateSQL &= "ID='" & txtid.Text & "', "
'UpdateSQL &= "NOME='" & txtnome.Text & "', "
'UpdateSQL &= "COGNOME='" & txtcognome.Text & "', "
'UpdateSQL &= "INDIRIZZO='" & txtindirizzo.Text & "', "
'UpdateSQL &= "CITTA='" & txtcitta.Text & "', "
'UpdateSQL &= "WHERE ID='" & lstclienti.SelectedItem.Value & "'"


Dim conn as New OleDbConnection()
conn.ConnectionString="Provider=Microsoft.Jet.OLED B.4.0;" & "Data Source=f:/Esercizi_ASPNET/Database/clienti.mdb"
dim cmd as New OleDbCommand(UpdateSQL, conn)

Try

conn.Open()
dim updated as Integer
updated=cmd.ExecuteNonQuery
lblerr.Text= updated.ToString() & " records aggiornati."

Catch err as Exception

lblerr.Text = "ATTENZIONE: Errore nell'aggiornamento dei dati. "
lblerr.Text &= err.Message

Finally

if (Not conn is Nothing) Then
conn.close()
end if

End try

End Sub
End Class

Quando avvio il file .aspx, seleziono all'interno della combobox il dato e lo vado a modificare. Mi rileva un errore di sintassi all'interno del seguente codice:

Private sub cmdupdate_Click (sender as object, e as EventArgs) Handles cmdupdate.Click

Dim UpdateSQL as String
UpdateSQL = "UPDATE clienti SET NOME='txtnome.Text', COGNOME='txtcognome.Text', INDIRIZZO='txtindirizzo.Text', CITTA='txtcitta.Text' WHERE ID='lstclienti.SelectedItem.Value'"
' UpdateSQL &= "ID='" & txtid.Text & "', "
'UpdateSQL &= "NOME='" & txtnome.Text & "', "
'UpdateSQL &= "COGNOME='" & txtcognome.Text & "', "
'UpdateSQL &= "INDIRIZZO='" & txtindirizzo.Text & "', "
'UpdateSQL &= "CITTA='" & txtcitta.Text & "', "
'UpdateSQL &= "WHERE ID='" & lstclienti.SelectedItem.Value & "'"

Vi prego provatelo con calma e fatemi sapere.

Grazie in anticipo

P.S.: Per il caro moderatore: Io la domanda l'ho posta in modo gentile, se poi non riuscite a capirmi questo è un problema vostro. Comunque, se qualcuno ti postasse inutilmente non ti darebbe fastidio? Non ti farebbe perdere del tempo? Inoltre se davvero volessi fare il moderatore cerca di mettere pace e non di rivolgermi tutte quelle inutili domande.