ho fatto delle prove modificando un poco il tuo codice.
Ho usato un solo TextBox per la ricerca
Vedi se va
codice:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Cerca_Click(sender As Object, e As System.EventArgs)
' RECUPERO I DATI DAL MODULO
Dim stringa As String = Replace(txtStringa.Text, "'", "''")
' CONTROLLO CHE SIA STATO SPECIFICATO UN CRITERIO DI RICERCA
If Len(Trim(stringa)) < 3 Then
Risultato.Text = "Inserire un termine di almeno 3 caratteri"
Return
End If
' DIVIDO LE PAROLE CHIAVE IN UN ARRAY DI STRINGA
' UTILIZZANDO UNO SPAZIO VUOTO COME SEPARATORE
Dim s As String() = stringa.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
' CREO LA STRINGA SQL *
Dim sql As New StringBuilder()
sql.Append("SELECT Iscritti.*, [cognome] & IIf([nome] Is Null,"""","" "" & [nome]) AS cognome_nome FROM Iscritti WHERE ")
For i As Integer = 0 To s.Length - 1
If i > 0 Then sql.Append(" and ")
sql.Append(" [cognome] & IIf([nome] Is Null,"""","" "" & [nome]) LIKE '%" & s(i) & "%'")
Next
' APRO LA CONNESSIONE E LANCIO LA QUERY IN UN RECORDSET
Using Connessione As New OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}", Server.MapPath("~/app_data/albo.mdb")))
Connessione.Open()
Dim Comando As New OleDbCommand(sql.ToString, Connessione)
Using Reader As OleDbDataReader = Comando.ExecuteReader()
Dim sb As New StringBuilder()
Do While (Reader.Read)
sb.Append(NullToString(Reader("cognome_nome")))
sb.Append("
")
Loop
Me.Risultato.Text = sb.ToString
End Using
End Using
End Sub
Public Function NullToString(ByVal v As Object) As String
If v Is DBNull.Value Then
Return ""
Else
Return DirectCast(v, String)
End If
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<label for="txtStringa">Nome</label>
<asp:TextBox ID="txtStringa" runat="server" />
<asp:Button ID="Cerca" runat="server" Text="Cerca" OnClick="Cerca_Click" />
<asp:Literal ID="Risultato" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>