Passaggio da Acces a Sql 2008 Express con Vb.net

mercoledì 20 aprile 2011 - 20.40
Tag Elenco Tags  VB.NET  |  SQL Server 2008 R2

Sileno Profilo | Newbie

Ciao a tutti,

ho sempre creato le mie applicazioni utilizzando Vb.Net ed i db in access.
Ora sono passato ad Db in sql express 2008 e qui iniziano i problemi!
Una mia applicazione creata in Vb.Net collegata ad un Db access funziona perfettamente, portandola in SQL funziona parzialmente, ovvero alcuni istruzioni, come inserire i dati, funzionano altre, come l'aggiornare i dati, non funzionano.
Nello specifico ho questo comando in SQL che non mi riferisce nessun errore ma non aggiorna il db in SQl:

"
Dim connessione As String = "Data Source=Pc-Daniele;Initial Catalog=sief;User Id=sa;Password=mecoioni;"
Dim database As New SqlConnection(connessione)
Dim comandosql As String = "UPDATE docenti SET cognome= '" & TextBox2.Text & "',nome= '" & TextBox3.Text & "',indirizzo= '" & TextBox8.Text & "',citta= '" & TextBox9.Text & "',provincia= '" & TextBox10.Text & "',telefono= '" & TextBox11.Text & "',email= '" & TextBox12.Text & "',fax= '" & TextBox13.Text & "',codice_fiscale= '" & TextBox109.Text & "',partita_iva= '" & TextBox92.Text & "',corsi= '" & TextBox1.Text & "'WHERE ID=" & TextBox4.Text & ""
Dim aggiorna As SqlCommand = New SqlCommand(comandosql, database)
aggiorna.Parameters.Add(New SqlParameter("cognome", TextBox2.Text))
aggiorna.Parameters.Add(New SqlParameter("nome", TextBox3.Text))
aggiorna.Parameters.Add(New SqlParameter("indirizzo", TextBox8.Text))
aggiorna.Parameters.Add(New SqlParameter("citta", TextBox9.Text))
aggiorna.Parameters.Add(New SqlParameter("provincia", TextBox10.Text))
aggiorna.Parameters.Add(New SqlParameter("telefono", TextBox11.Text))
aggiorna.Parameters.Add(New SqlParameter("email", TextBox12.Text))
aggiorna.Parameters.Add(New SqlParameter("fax", TextBox13.Text))
aggiorna.Parameters.Add(New SqlParameter("codice_fiscale", TextBox109.Text))
aggiorna.Parameters.Add(New SqlParameter("partita_iva", TextBox92.Text))
aggiorna.Parameters.Add(New SqlParameter("corsi", TextBox1.Text))
Try
If database.State <> ConnectionState.Open Then database.Open()
aggiorna.ExecuteNonQuery()
MsgBox("Aggiornamento dati effettuato")
Catch ex As Exception
MsgBox("Dati non naggiornati: verifica correttezza")"

Qualche santo potrebbe darmi una dritta, sono nottti che ci perdo il sonno dietro!
Grazie a tutti

alexmed Profilo | Guru

Ciao
Hai fatto un pò di confusione!

Perchè usare i parametri quando il valore lo passi nella stringa della query?!?!?

Qui scrivi
UPDATE docenti SET cognome= '" & TextBox2.Text & "',nome ...
E poi aggiungi il parametro cognome
Non ha senso.
Quindi:
UPDATE docenti SET cognome= @Cognome , nome = ...

e poi aggiungo e valorizzo i parametri

aggiorna.Parameters.Add(New SqlParameter("@Cognome", TextBox2.Text))

Guardati questo link e utilzza USING per connetterti al db.
http://msdn.microsoft.com/it-it/library/system.data.sqlclient.sqlcommand.executescalar(v=VS.90).aspx

Devi inoltre fare attenzione ad un particolare: quando utilizzi un db SQL, Visual Basic dovrebbe crearti una copia "temporanea" del database stesso per preservare l'originale, quindi ogni operazione di inserimento o modifica non verrà salvata se non nella sessione in cui stai lavorando.

Prova

Ciao

alexmed
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