我有一个ASP.NET网站,并使用MS Access作为数据库。我在db中有一个用于存储Mobil编号的表。如果第二个数字是4号,我想显示记录。
此查询在Access中运行良好,但在ASP.NET中返回零记录。
select telnumber
from numberlist
where telnumber like ?4%
我将?4%
作为参数发送给OleDbCommand但没有返回结果!
最好的问候
答案 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或访问数据源我必须替换?用_并且它有效!