c# - 查询不返回任何东西

标签 c# .net sql ms-access oledbconnection

我正在尝试从数据库中获取一些结果,但是查询失败了!

String sqlFindModel = "SELECT * FROM [PRODUCT] WHERE [PN] LIKE ('*" + textBox1.Text + "*')";

当我修剪“WHERE [PN] LIKE ...”部分时,它工作正常。 当我将 LIKE 替换为“=”并查找精确值时,它起作用了。

我很困惑。

PS - 有趣的是,直接在 ACCESS 中查询时,必须使用 *;但是当使用 C# 连接到 MS Access 时,需要使用 %... interesting!

最佳答案

* 不用于 SQL LIKE 语句中的通配符 - % 是。

但是,您不应该只是更改您的代码以使用 % - 您应该修复您的代码,使其容易受到 SQL injection attacks 的攻击,反而。您应该改用参数化 SQL。有关示例,请参阅 OleDbCommand.Parameters 的文档。

关于c# - 查询不返回任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9946716/

相关文章:

c# - 如何在不使用描边属性的情况下勾勒出椭圆形?

.net - TaskScheduler.FromCurrentSynchronizationContext() 在嵌套任务中引用什么?

c# - WCF、Web 服务或 Rest

c# - Backgroundworker RunWorkerCompleted 事件甚至在完成工作之前就已触发

mysql - 更新mysql大表挂太时间

c# - C# 中的等宽可编辑文本

c# - User.config 损坏

c# - 线程池是否在应用程序域之间共享?

php - 在 Laravel Eloquent 中使用 “with()” 函数连接列

mysql - 如何使用 SELECT FOR UPDATE