C#搜索框sql语句模糊查询
时间: 2024-12-31 17:38:52 浏览: 16
### C# 中实现 SQL 模糊查询
在 C# 应用程序中通过 SQL 进行模糊查询主要涉及以下几个方面:
#### 构建安全的 SQL 查询语句
构建 SQL 查询时应特别注意防止 SQL 注入攻击。推荐使用参数化查询来代替直接拼接字符串的方式。
```csharp
using (SqlConnection conn = new SqlConnection(connectionString))
{
string query = "SELECT * FROM 表名 WHERE 字段名 LIKE @searchTerm";
using (SqlCommand cmd = new SqlCommand(query, conn))
{
// 添加带通配符的参数
cmd.Parameters.AddWithValue("@searchTerm", "%" + searchTerm + "%");
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["字段名"].ToString());
}
}
}
```
此代码片段展示了如何创建一个连接并执行带有 `LIKE` 子句的安全查询[^1]。
#### 处理用户输入
对于来自用户的搜索词,应当先做适当清理再用于构造查询条件。这不仅有助于提升安全性还能改善用户体验。
```csharp
// 清洗用户输入的数据
string CleanInput(string input)
{
if (string.IsNullOrEmpty(input)) return "";
return input.Replace("'", "").Trim(); // 移除多余空白字符和单引号
}
// 使用清洗后的数据作为查询依据
string cleanedSearchTerm = CleanInput(searchBox.Text);
```
上述函数会移除可能导致问题的特殊字符,并去除首尾多余的空格[^2]。
#### 效率优化建议
当表内记录量较大时,频繁使用 `%` 开头的 `LIKE` 可能会影响性能,因为这样无法有效利用索引。考虑采用全文检索或其他更高效的解决方案替代简单模式匹配[^3]。
阅读全文