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
Motore di ricerca interno
venerdì 12 febbraio 2010 - 18.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
NetDev
Profilo
| Newbie
29
messaggi | Data Invio:
ven 12 feb 2010 - 18:23
Ciao a tutti,
ho un database di libri che popolo tramite una semplice INSERT e che visualizzo tramite un dataGrid.
Vorrei realizzare un semplice motore di ricerca interno che mi permetta di verificare (ad esempio in base al titolo) la presenza o meno di un libro nel database e visualizzare il risultato.
Qualcuno può darmi una dritta?
Grazie!
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
dom 14 feb 2010 - 20:20
una select sulla tabella che contiene i dati in base alla parola chiave da cercare:
Select, id, nomeTitolo where nomeTitolo ='parolaDACercare'
Potresti affinare la ricerca con l'utilizzo dell'operatore "like"
Ciao
Riccardo D'Aria
NetDev
Profilo
| Newbie
29
messaggi | Data Invio:
mar 16 feb 2010 - 10:55
Grazie per la risposta.
Dato che sono proprio alle prime armi, non potresti postarmi un esempio?
Ho trovato uno script pronto nel quale viene effettuato l'accesso ai dati tramite ADO ma non riesco ad adattarlo per ADO.NET, probabilmente mi manca la dll.
Ad ogni modo viene usato un recordset e, a quanto ho capito, è un codice un pò obsoleto.
Grazie ancora.
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 16 feb 2010 - 11:32
Questo come puoi vedere fa anche il binding sulla griglia dati:
Dim strSQL As String = ""
Dim testo As String = ""
Dim nomeCampo As String = ""
testo = "testo da cercare"
nomeCampo = "nomeDelCampoInCuiCercare"
testo = Replace(testo, "'", "''")
If testo <> "" Then
strSQL = "Select * from nomeTabella where " & nomeCampo & " like '" & testo & "%'"
AccessDataSource1.SelectCommand = strSQL
GridView1.DataBind()
End If
Spero che tu abbia dimistichezza con i dataSource.
Questo codice lavora su di un db di access.
Ciao
Riccardo D'Aria
NetDev
Profilo
| Newbie
29
messaggi | Data Invio:
mar 16 feb 2010 - 12:27
Ok, sono riuscito ad ottenere qualcosa!
Questo è il codice:
'Apro una Connessione al database
Dim cn As OleDbConnection
Dim myPath As String
myPath = Server.MapPath("App_Data/libri.mdb")
cn = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;" & "Data Source=" & myPath & ";")
'cn.Open()
Dim objReader As OleDbDataReader
Dim objCmd As OleDbCommand
cn.Open()
Dim strSQL As String
Dim testo As String
Dim nomeCampo As String
testo = txtRicTitolo.Text
nomeCampo = "Titolo"
testo = Replace(testo, "'", "''")
If testo <> "" Then
strSQL = "Select * from tblLibri where " & nomeCampo & " like '" & testo & "%'"
AccessDataSource1.SelectCommand = strSQL
GridView2.DataBind()
End If
Non mi è chiaro "testo = Replace(testo, "'", "''")". A cosa serve?
Inoltre ora come ora mi da come risultato solo i titoli che sono esattamente la parola da cercare inserita. Vorrei estendere la ricerca anche ai titoli che contengono quella parola. Come posso fare?
Grazie ancora!
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 16 feb 2010 - 12:39
>
>Non mi è chiaro "testo = Replace(testo, "'", "''")". A cosa serve?
serve per sostituire eventuali apostrofo nel testo da cercare che qualora ci fossero verrebbero interpretati come degli apici mandando in errore il data reader.
>Inoltre ora come ora mi da come risultato solo i titoli che sono
>esattamente la parola da cercare inserita. Vorrei estendere la
>ricerca anche ai titoli che contengono quella parola. Come posso
>fare?
Usa l'operatore like come ho fatto io, ma se googli un pò, sull'operatore like, trovereai dettagliate spiegazioni
CIAO
Riccardo D'Aria
NetDev
Profilo
| Newbie
29
messaggi | Data Invio:
mar 16 feb 2010 - 13:32
Grazie mille, ho risolto mettendo un "%" anche all'inizio della stringa da confrontare.
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mer 24 feb 2010 - 05:39
Gentilmente chiudi questo post accettando la mia risposta?
Grazie
Riccardo D'Aria
NetDev
Profilo
| Newbie
29
messaggi | Data Invio:
mer 24 feb 2010 - 15:02
Scusa credevo di averlo già fatto :)
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 !