在ASP.NET上的MS Access DB的相似参数中使用问号

时间:2015-06-30 23:38:48

标签: sql asp.net ms-access parameters sql-like

我有一个ASP.NET网站,并使用MS Access作为数据库。我在db中有一个用于存储Mobil编号的表。如果第二个数字是4号,我想显示记录。

此查询在Access中运行良好,但在ASP.NET中返回零记录。

select  telnumber
from numberlist
where telnumber like ?4%

我将?4%作为参数发送给OleDbCommand但没有返回结果!

最好的问候

2 个答案:

答案 0 :(得分:0)

查询中的?实际上是参数占位符,而不是单个字符的通配符。执行查询时,占位符将替换为您的参数值,因此您的查询将变为like ?4%4%

您传递的参数值应为'?4%',您的SQL语句应为

select telnumber
from numberlist
where telnumber like ?

Retrieving Data Using the AccessDataSource Web Server Control

  

因为AccessDataSource控件扩展了SqlDataSource类   并使用System.Data.OleDb提供程序,指定参数   占位符使用“?”占位符字符。该   System.Data.OleDb提供程序不支持命名参数;代替,   参数值按照指定的顺序应用   参数集合。

答案 1 :(得分:0)

我发现自己的问题的答案! 对于按字符索引搜索SQL或访问数据源我必须替换?用_并且它有效!