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
ASP.NET 2.0 / 3.5 / 4.0
Record inesistente
martedì 05 febbraio 2008 - 20.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
albedo
Profilo
| Junior Member
59
messaggi | Data Invio:
mar 5 feb 2008 - 20:22
Ciao a tutti
Spero vogliate spiegarmi come risolvere un probleme che per voi sarà banale, ma per uno alle prime armi come me è difficile da suoerare, dunque:
Ho una tabella ARTICOLI con due campi: ID_ART e ARTICOLO
In questa tabella ci sono 50 record
ID_ART | ARTICOLO
1 | Pinze
2 | Martello
3 | Chiodi
4 | Vite
5 | Giravite
Ho una datagridview in cui, digitando un valore di ID_ART mi riporta il corrispondente articolo in un'altra cella della datagridview.
ora vorrei fare in modo che se si digita un codice cui non corrisponde alcun articolo (adesempio, 6) compaia un msgbox che mi avvisi.
Ho ustao questo codice, ma non funziona:
sql = "select ARTICOLO from ARTICOLI where ID_ART=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_ART", Griglia_Vendite.Item(3, rw).Value)
dr = cmd.ExecuteReader
Do While dr.Read
If dr.HasRows Then
If dr.Item(1) Is Nothing Then
MsgBox("???")
Else
Griglia_Vendite.Item(4, rw).Value = dr.Item("ARTICOLO")
End If
End If
Loop
dr.Close()
Grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 5 feb 2008 - 20:34
>Ciao a tutti
Ciao e benvenuto su DotNetHell!
Secondo me sbagli l'utilizzo della proprietà HasRows del datareader.
A rigor di logica la proprietà dovrebbe essere false se la query non ti torna nulla, quindi se l'ID_ART non eiste in tabella, HasRows dovrebbe essere a false.
Quindi io agirei proprio su quella, una cosa del tipo:
Eseguo la query e valorizzo il datareader
Controllo la proprietà HasRows
Se è true ciclo il datareader e eseguo le normali operazioni
Altrimenti ritorno il messaggio.
Fai attenzione però che parlare di Messagebox in asp.net non è così corretto. Lato server al massimo tu puoi generare uno script (che poi verrà eseguito lato client) oppure puoi scrivere sulla pagina web un messaggio di errore (Response.Write). Se fossi in te, visto che comunque devi eseguire l'interrogazione al db sul server, seguirei proprio la seconda strada. Una bella response.write del messaggio di errore.
>
>Grazie
di nulla!
Alx81 =)
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
albedo
Profilo
| Junior Member
59
messaggi | Data Invio:
mer 6 feb 2008 - 11:27
Grazie davvero di cuore per la risposta.
Ho provato a fare come mi hai suggerito, ma lko stesso non funziona.
finora, al massimo sono riuscito ad ottenere una "IndexOutOfRangeException"
Hai ragione a dire di fare attenzione a parlare di msgbox in ASP.NET.... ma ... ehm
credo di aver sbagliato sezxione, infatti sto andando a ripostare la domanda nella sezione appropriata.
Grazie di nuovo.
Ciao
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 !