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 1.0/1.1
Wildcard
lunedì 20 marzo 2006 - 11.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Zenzot
Profilo
| Newbie
6
messaggi | Data Invio:
lun 20 mar 2006 - 11:15
Salve,
non è ,molto che programmo, e dovrei risolvere questo problema.
Ho una query per un motore di ricerca interno al mio sito alla quale non riesco a far eseguire una ricerca anche parziale della parola immessa dall'utente, dove sbaglio?
Allego il codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim str_conn As String
str_conn = "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db1.mdb")
Dim conn As OleDb.OleDbConnection
conn = New OleDb.OleDbConnection(str_conn)
Dim command As OleDb.OleDbDataAdapter
Dim str_sql As String
str_sql = "SELECT * FROM Modulistica WHERE Corpo LIKE '%" & TextBox1.Text & "%' "
Dim command2 As New OleDb.OleDbCommand("Select count(*) FROM Modulistica WHERE Corpo LIKE '" & TextBox1.Text & "'", conn)
Dim tot As String
If TextBox1.Text = "" Then
Label1.Text = "Inserisci un valore"
Exit Sub
End If
Try
conn.Open() ' apro la connessione
tot = command2.ExecuteScalar()
dg.Visible = True
If tot = 0 Then
dg.Visible = False
Label1.Text = "Nessun record trovato"
Else
command = New OleDb.OleDbDataAdapter(str_sql, conn)
Dim ds As DataSet
ds = New DataSet
command.Fill(ds, "Modulistica")
dg.DataSource = ds
dg.DataBind()
Label1.Text = "Record trovati: " & tot
End If
Catch ex As Exception
Label1.Text = "Si è verificato il seguente errore: " & ex.Message 'stampo eventuali errori
Finally
If Not conn Is Nothing Then
conn.Close() ' chiudo la connessione
End If
End Try
End Sub
Ciciu
Profilo
| Senior Member
233
messaggi | Data Invio:
lun 20 mar 2006 - 13:01
Ciao.
>Dim command2 As New OleDb.OleDbCommand("Select count(*) FROM
>Modulistica WHERE Corpo LIKE '" & TextBox1.Text & "'", conn)
Magari è solo un errore di digitazione, ma in questo comando NON stai fornendo all'SQL i "%" tra cui racchiudere la porzione di stringa da cercare. In pratica gli stai dicendo :
Select count(*) FROM Modulistica WHERE Corpo LIKE 'PIPPO'
Mentre dovresTi dirgli :
Select count(*) FROM Modulistica WHERE Corpo LIKE '%PIPPO%'
A prima vista questo mi sembra l'errore...
In seconda battuta, non sono convintissimo che per Access la Wildcard "%" sia corretta. So per certo che è ok per Oracle, ma per Access, forse, è "*". Ti consiglio, però, di fare una prova....
Ciao - Fabio
Fabio G
Zenzot
Profilo
| Newbie
6
messaggi | Data Invio:
lun 20 mar 2006 - 13:06
Il valore da correggere nel codice che ho postato in origine era corretto, probabilmente il forum lo ha formattato in quel modo.
Ho provato ad usare anche ("*") nella query, ma senza risultato, non so più cosa fare.
Grazie lo stesso ciao.
Ciciu
Profilo
| Senior Member
233
messaggi | Data Invio:
lun 20 mar 2006 - 13:18
Ho fatto una piccola verifica, e mi sembra che il carattere da usare sia proprio "*".
Cmq, immagino che il risultato della Tua interrogazione sia "Nessun Record Trovato".
Prova ancora una cosa, ovvero a "trimmare" il valore del textbox.
Scusa l'ovvietà della cosa, ma ricorda anche che questo tipodi ricerca è case-sensitive...
Un'ultima cosa che puoi verificare, è quella di sostituire il count(*) con il count(<nomecampo>).
Ciao - Fabio
Fabio G
Zenzot
Profilo
| Newbie
6
messaggi | Data Invio:
lun 20 mar 2006 - 14:46
Ho provato di nuovo, questa è la query:
str_sql = "SELECT * FROM Modulistica WHERE Corpo LIKE '*" & TextBox1.Text & "*' ",
ho inserito i caratteri che mi avevi indicato, ma niente da fare.
Ciciu
Profilo
| Senior Member
233
messaggi | Data Invio:
lun 20 mar 2006 - 15:21
Dunque, la cosa è piuttosto curiosa....
Hai la possibilitàdi farTi restituire il valore della variabile che contiene il comando SQL ? Giusto per vedere cosa pensa di dover fare il runtime ?
Se fai la stessa select direttamente da Access, ottieni dei risultati ?
Ciao - Fabio
Fabio G
Zenzot
Profilo
| Newbie
6
messaggi | Data Invio:
lun 20 mar 2006 - 16:01
Il nome della variabile SQL che ho già scritto sul primo post è str_sql, alla quale segue l'istruzione della SELECT.
Ciciu
Profilo
| Senior Member
233
messaggi | Data Invio:
lun 20 mar 2006 - 16:27
>Il nome della variabile SQL che ho già scritto sul primo post
>è str_sql, alla quale segue l'istruzione della SELECT.
>
Ok, questo mi è chiaro. Ma cosa contiene dopo che l'hai valorizzata ? Non Ti fermare a ciò che pensi di metterci dentro : verifica COSA ci hai messo dentro !
Fabio G
Zenzot
Profilo
| Newbie
6
messaggi | Data Invio:
lun 20 mar 2006 - 16:35
Dentro ci ho inserito i nomi di file di MSWord, che fisicamente risiedono in una cartella del mio sito; nel campo del Db che ho chiamato Corpo,i nomi dei vari File sono comprensivi della relativa estensione con cui vengono caricati, ad es. "MioFile.doc".
Spero di aver capito bene quallo che intendi...
Ciciu
Profilo
| Senior Member
233
messaggi | Data Invio:
lun 20 mar 2006 - 19:28
>Dentro ci ho inserito i nomi di file di MSWord, che fisicamente
>risiedono in una cartella del mio sito; nel campo del Db che
>ho chiamato Corpo,i nomi dei vari File sono comprensivi della
>relativa estensione con cui vengono caricati, ad es. "MioFile.doc".
>Spero di aver capito bene quallo che intendi...
Temo di non essermi spiegato... Io vorrei sapere, e lo puoi verificare tramite debug, cosa contiene la variabile str_sql dopo che è stata assegnata...
Fabio G
Zenzot
Profilo
| Newbie
6
messaggi | Data Invio:
mar 21 mar 2006 - 10:13
33_debug.zip
Guarda, probabilmente ti sei spiegato benissimo, c'è solo il fatto che non riesco a seguire in tutto l'argomento in quanto non sono molto pratico.
Non mi genera nessun errore all'avvio, e comunque ti allego un file di testo in cui ho copiato l'output che mi esegue quando avvio la pagina nel browser con visual studio.
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 !