Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Risultato strano
lunedì 10 ottobre 2016 - 00.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows 7
|
Visual Studio Express
|
SQL Server 2008 R2
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
lun 10 ott 2016 - 00:58
Ciao a tutti.
Uso Sql Server 2008 R2 e Visual Basic Express
Vorrei sapere cosa c'è di sbagliato nel seguente codice.
Con il seguente codice vorrei modificare solo una parte dei valori(stringa) di una colonna.
Il problema è che eseguito il ciclo i valori della colonna risultano si cambiati ma l'intera colonna
viene modificata tutta con il valore modificato dell'ultimo record della tabella.
Esempio.
Pippo Mario Rossi
Pippo Mario Rossi
Pippo Mario Rossi ecc.
Invece di
Pippo Mario Bianco
Pippo Mario Verde
Pippo Mario Rossi ecc.
Private Sub BtnModifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnModifica.Click
Dim cmd, cmd1 As SqlCommand
Dim dst As DataSet
Dim adp As SqlDataAdapter
Dim bds As BindingSource
Dim totalerecordMiaTabella As Integer = 200
cmd = New SqlCommand()
cmd.Connection = SqlHelper.ConnessioneDatabase
cmd.CommandText = "SELECT StringaDati FROM MiaTabella"
adp = New SqlDataAdapter(cmd)
dst = New DataSet
adp.Fill(dst, "StringaDati")
bds = New BindingSource()
bds.DataSource = dst
bds.DataMember = "StringaDati"
adp.Dispose()
cmd.Dispose()
cmd.Connection.Close()
Dim stringaEsistente As String
Dim lunghezzaStringaEsistente As Integer
Dim caratteriDaEliminareStringaEsistente As Integer = 15
Dim CaratteriNonEliminatiStringaEsistente As String
Dim CaratteriDaInserireNuovaStringa As String = TxtStringaDaInserire.Text
Dim nuovaStringaDaSalvare As String
For i As Integer = 0 To totalerecordMiaTabella - 1
stringaEsistente = CStr(dst.Tables("StringaDati").Rows(i).Item(0))
lunghezzaStringaEsistente = Len(stringaEsistente)
CaratteriNonEliminatiStringaEsistente = Mid(stringaEsistente, caratteriDaEliminareStringaEsistente, lunghezzaStringaEsistente - caratteriDaEliminareStringaEsistente)
nuovaStringaDaSalvare = CaratteriDaInserireNuovaStringa + CaratteriNonEliminatiStringaEsistente
cmd1 = New SqlCommand()
cmd1.Connection = ConnessioneDatabase
cmd1.CommandText = "UPDATE MiaTabella " & _
"SET StringaDati=@stringadati"
cmd1.CommandType = CommandType.Text
cmd1.Parameters.AddWithValue("@stringadati", nuovaStringaDaSalvare)
ConnessioneDatabase.Open()
cmd1.ExecuteNonQuery()
ConnessioneDatabase.Close()
Next
Messaggi.Avviso("Completato!", "Avviso!")
End Sub
Ringrazio anticipatamente per l'eventuale risposta.
Ciao a tutti. Peppino.
Ho risolto. Ovviamente mancava la condizione where, ma nella mia testa guardavo il codice e dicevo che era giusto
poi è bastato rileggerlo il giorno dopo per capire che non era completo.
Grazie comunque a tutti. Ciao. Peppino.
renarig
Profilo
| Expert
517
messaggi | Data Invio:
mer 12 ott 2016 - 19:50
> Vorrei sapere cosa c'è di sbagliato nel seguente codice.
> cmd1.CommandText = "UPDATE MiaTabella " & _
> "SET StringaDati=@stringadati"
> cmd1.CommandType = CommandType.Text
Non ho letto tutti i dettagli, ma.....
quell' UPDATE non ha una WHERE ????
pertanto Updata in toto TUTTI i record della tabella al campo "StringaDati"
se fai un ciclo significa che per ogni passo del ciclo tutti i record
vengono aggiornati identicamente
chiaramente l'ultimo passo del ciclo è quello che
dà il valore finale che tu puoi vedere
.
Post Scritto
Avevo premesso che non avevo letto tutti i dettagli :)
Infatti mi accorgo solo adesso che avevi gia risolto
autonomamente ......
.
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
gio 13 ott 2016 - 12:10
Ciao.
Grazie Comunque per aver letto il post.
Ciao Peppino.
Torna su
Stanze Forum
Elenco Threads
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 !