可以实现模糊查询了~~~

原来就是这么简单的啊,,^_^

代码:

Imports System.Data
Imports System.Data.SqlClient
Public Class datagridtest
    Inherits System.Web.UI.Page

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        data("")  '绑定数据,第一次传入空字符串""
    End Sub
    Function data(ByVal strKeyword As String)
        Dim con As SqlConnection

        Dim da As SqlDataAdapter
        Dim ds As DataSet

'下面根据传入参数建立SQL语句
        Dim strSql As String
        If strKeyword = "" Then
            strSql = "Select * From Student_Table"
        Else
            strSql = "Select * From Student_Table Where xname Like '%" & strKeyword & "%' or college like '%" & strKeyword & "%'"
        End If
        con = New SqlConnection("server=(local);uid=sa;pwd=;database=lab")
        da = New SqlDataAdapter(strSql, con)
        ds = New DataSet
        da.Fill(ds, "Student_Table")

 

        DataGrid1.DataSource = ds
        DataGrid1.DataBind()

    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        data(Trim(TextBox1.Text))  'Trim表示去掉两边空格
    End Sub
End Class

### Redis模糊查询功能实现 Redis 支持通过 `KEYS` 命令进行模糊查询,该命令允许使用通配符(如 `*`、`?` 和 `[ ]`)来匹配特定模式的键[^1]。例如,可以通过以下方式查询所有以 `user:` 开头的键: ```bash KEYS user:* ``` 然而,需要注意的是,`KEYS` 命令会在整个 Redis 数据库中执行全量扫描操作。如果数据库中的键数量庞大,这可能会导致性能问题,尤其是在生产环境中[^1]。 为了提高模糊查询的效率,可以考虑以下替代方案: 1. **使用有序集合(Sorted Set)维护索引**: 在实际应用中,如果需要频繁进行模糊查询,建议使用 Redis 的有序集合(Sorted Set)来维护一个索引结构。通过将键存储到有序集合中,并结合其范围查询功能,可以显著提升查询效率[^1]。 2. **使用 SCAN 命令**: 与 `KEYS` 不同,`SCAN` 命令以增量迭代的方式遍历键空间,避免了阻塞 Redis 的问题。虽然它的性能优于 `KEYS`,但仍然不适用于大规模数据集下的精确模糊匹配[^4]。以下是一个使用 `SCAN` 进行模糊查询的示例: ```bash SCAN 0 MATCH user:* ``` 3. **引入外部搜索引擎**: 如果模糊查询的需求较高且对性能要求严格,可以考虑引入专门的搜索引擎(如 Elasticsearch 或 RedisSearch)。这些工具专为复杂查询设计,能够更高效地处理模糊匹配场景。 在 Java 环境下,可以通过 Jedis 或 RedisTemplate 实现 Redis 的模糊查询功能[^3]。以下是一个基于 RedisTemplate 的代码示例: ```java import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.ScanOptions; import org.springframework.data.redis.core.StringRedisTemplate; public class RedisKeyService { private final StringRedisTemplate redisTemplate; public RedisKeyService(StringRedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } public void scanKeys(String pattern) { ScanOptions options = ScanOptions.scanOptions().match(pattern).count(1000).build(); Cursor<String> cursor = redisTemplate.getConnectionFactory() .getConnection() .scan(options); while (cursor.hasNext()) { System.out.println(cursor.next()); } } } ``` 上述代码通过 `SCAN` 命令实现了模糊查询功能,并设置了每次迭代返回的最大键数为 1000。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值