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
.NET Framework
Query con parametro
lunedì 17 maggio 2004 - 11.43
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cracci
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 mag 2004 - 11:43
Salve a tutti, sto cercando di eseguire una query che mi tiri fuori da un database access un solo campo di un record che contiene il codice dei Comuni italiani per la creazione del codice fiscale. Ebbene non riesco a passare come filtro nella query il valore (stringa) della TextBox che l'utente riempie indicando il Comune di residenza. Ho provato attraverso una variabile all'interno del WHERE della query...ho provato con un parametro nell'istruzione command che contiene la query...ma non funziona... la query sembra funzionare solo se confronto nel WHERE la TextBox con una stringa ben precisa e non con una variabile o un parametro...
Come posso fare???
Grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 17 mag 2004 - 14:23
Ciao,
il codice che hai allegato non mi sembra molto corretto.
Allora per recuperare un solo campo da un database puoi utilizzare la funzione ExecuteScalar() della classe OleDbCommand quindi puoi fare così:
1) Crea la connessione
2) Costruisci la stringa che estrae il dato e passi come filtro il valore della textbox
Dim strsql as String
strsql="SELECT CODICE_COMUNE FROM TabellaComuni WHERE NomeComune='" + TextBoxComune.Text +"'"
Dim cmd as OleDbCommand
cmd=new OleDbCommand(strsql,connession)
Dim valorerecuperato as String
valorerecuperato=CStr(cmd.ExecuteScalar())
Così dovrebbe funzionare.
ciao
david
cracci
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 mag 2004 - 17:34
Ti ringrazio per la risposta ma ho provato con quanto suggerito e niente da fare. Non riesco proprio. Per sicurezza scrivo il codice della funzione che deve restituirmi il codice del comune:
Public Function Codice(ByVal Ccomuni As String) As String
Dim cnn1 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Documents and Settings\cracci\Documenti\Progetti d" & _
"i Visual Studio\Codice_fiscale\Comuni.mdb")
Dim cmd1 As New System.Data.OleDb.OleDbCommand
Dim str1 As String = TextBox4.Text
With cmd1
.Connection = cnn1
.CommandText = "SELECT COMU_COD FROM Comuni WHERE COMU_COD = " & str1
End With
cnn1.Open()
Dim Ccodice As String = CStr(cmd1.ExecuteScalar())
cnn1.Close()
Return Ccodice
End Function
Il file access contiene 1 sola tabella di nome 'Comuni' e 3 colonne: 'COMU_COD', 'COMU_DESCR', 'COMU_PROV'
Grazie a chiunque mi dia una mano... :)
cracci
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 mag 2004 - 17:50
Correggo...:
WHERE WHERE COMU_DESCR = " & str1
Ma chiaramente non funziona lo stesso....
Chiunque volesse aiutarmi.... GRAZIE
cracci
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 mag 2004 - 18:34
Tutto risolto.... il codice corretto è qui:
With cmd1
.Connection = cnn1
.CommandText = "SELECT COMU_COD FROM Comuni WHERE COMU_DESCR = " & "'" & str1 & "'"
End With
Mancavano gli apici... incredibile che neanche i libri Microsoft riportino questo fatto...
E noi poveri NewBies come facciamo!?!?!?
Grazie a tutti comunque
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 18 mag 2004 - 07:53
Ciao,
mah non so che libro hai letto ma in genere sui libri che spiegano come funziona SQL c'è scritto.
Inoltre è una cosa molto conosciuta il fatto che i valori di testo devono esser ecompresi fra apici singoli.
ciao
david
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 !