|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 430
|
[Visual basic 2008] Ancora su database sql..
Perchè il seguente codice non funziona? Non mi da errore ma non fa quello che dovrebbe...
Codice:
Dim conn As New System.Data.SqlServerCe.SqlCeConnection("Data Source = componenti.sdf; Persist Security Info=False;")
Dim sqlQ As String = "SELECT pezzo, modello, prezzo, marca FROM temporal WHERE pezzo = 'processore'"
Dim command As New System.Data.SqlServerCe.SqlCeCommand(sqlQ, conn)
conn.Open()
Dim reader As System.Data.SqlServerCe.SqlCeDataReader = command.ExecuteReader()
While (reader.Read())
If Label14.Text = " " Then
MsgBox("Devi scegliere un processore prima di aggiungerlo!", MsgBoxStyle.Critical, "ERRORE!")
ElseIf IsDBNull((reader(("pezzo")))) Then
Dim cmd As New System.Data.SqlServerCe.SqlCeCommand
cmd.CommandText = "INSERT INTO temporal(pezzo, modello, prezzo, marca) VALUES ('processore' , '" & Label15.Text & "' , '" & Label17.Text & "' , '" & Label14.Text & "')"
conn.Open()
cmd.Connection = conn
cmd.ExecuteNonQuery()
While (reader.Read())
ListBox4.Items.Add(UCase((reader("pezzo"))) & " - " & UCase((reader("marca"))) & " " & UCase((reader("modello"))) & " - " & (reader("prezzo")) & "€")
End While
conn.Close()
Else
MsgBox("Puoi inserire solo un processore per volta!", MsgBoxStyle.Critical, "ERRORE")
End If
End While
reader.Close()
conn.Close()
__________________
[ Raidmax Ninja | Intel [email protected] Ghz | Arctic Cooling Freezer 7 Pro | Asus P5K-E WiFi-AP | 6GB Corsair 800Mhz | XFX HD5770XT | 2xWestern Digital 320GB Raid0 | Pioneer DVR-215D | LG L222WS ]
Ultima modifica di ale09hh : 15-03-2009 alle 17:40. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Non mi è chiaro quel secondo Reader nidificato nel primo...
Che stai tentando di fare ? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 430
|
Allora se ti ricordi io nel mio programma vorrei mettere una cosa tipo carrello della spesa...
All'inizio ho sperimentato a farlo "normalmente", cioè inserendo direttamente i dati dal form nella list box, ma poi ho incontrato dei problemi più avanti per cui ho deciso di inserire un database temporaneo in cui inserire i dati per metterli in seguito nel listbox... In particolare, Codice:
Dim sqlQ As String = "SELECT pezzo, modello, prezzo, marca FROM temporal WHERE pezzo = 'processore'"
Dim command As New System.Data.SqlServerCe.SqlCeCommand(sqlQ, conn)
conn.Open()
Dim reader As System.Data.SqlServerCe.SqlCeDataReader = command.ExecuteReader()
Codice:
ElseIf IsDBNull((reader(("pezzo")))) Then
Dim cmd As New System.Data.SqlServerCe.SqlCeCommand
cmd.CommandText = "INSERT INTO temporal(pezzo, modello, prezzo, marca) VALUES ('processore' , '" & Label15.Text & "' , '" & Label17.Text & "' , '" & Label14.Text & "')"
conn.Open()
cmd.Connection = conn
cmd.ExecuteNonQuery()
While (reader.Read())
ListBox4.Items.Add(UCase((reader("pezzo"))) & " - " & UCase((reader("marca"))) & " " & UCase((reader("modello"))) & " - " & (reader("prezzo")) & "€")
End While
conn.Close()
1- se l'utente ha selezionato il processore prima di inserirlo nel listbox 2- se l'utente ha già inserito un processore
__________________
[ Raidmax Ninja | Intel [email protected] Ghz | Arctic Cooling Freezer 7 Pro | Asus P5K-E WiFi-AP | 6GB Corsair 800Mhz | XFX HD5770XT | 2xWestern Digital 320GB Raid0 | Pioneer DVR-215D | LG L222WS ]
Ultima modifica di ale09hh : 15-03-2009 alle 18:05. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Va beh, non ho capito esattamente cosa tu voglia fare, comunque fare 2 cicli while sullo stesso reader ( il Reader che usi dentro è lo stesso che usi fuori, perchè vedo che ne hai dichiarato uno solo ) non può andare.
Quando fai Reader.Read() il reader è partito, è come un cursore, poi gli fai fare ancora .Read() all'interno... E' logico che faccia pasticci, anzi mi sorprende un po' che non ti si pianti tutto. Se vuoi usare un DataReader interno prova ad istanziarne uno nuovo ! E occhio ai nomi... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 430
|
E' un pò difficile da spiegare e aggiungi che non sono un mostro di eloquenza...
__________________
[ Raidmax Ninja | Intel [email protected] Ghz | Arctic Cooling Freezer 7 Pro | Asus P5K-E WiFi-AP | 6GB Corsair 800Mhz | XFX HD5770XT | 2xWestern Digital 320GB Raid0 | Pioneer DVR-215D | LG L222WS ]
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:29.



















