首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net oracle 参数化 模糊查询出错,该怎么处理

2012-03-08 
asp.net oracle 参数化 模糊查询出错郁闷了半天了,有谁能帮忙解决string testdemoabcstring sql SEL

asp.net oracle 参数化 模糊查询出错
郁闷了半天了,有谁能帮忙解决

string testdemo="abc";
string sql= "SELECT COUNT(*) FROM TestTable WHERE BText LIKE '%:testdemo%'";
OracleParameter parm = new OracleParameter(":testdemo", OracleType.NVarChar, 90);
parm.Value = testdemo;
totalCount = Convert.ToInt32(OracleHelper.ExecuteScalar(OracleHelper.ConnectionString, CommandType.Text, sql, parm));

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.OracleClient.OracleException: ORA-01036: 非法的变量名/编号

[解决办法]

C# code
where = " and title like '%'+:testdemo+'%'";//注意这里跟普通不带Like条件或者直接Like查询不一样OracleParameter parm = new OracleParameter("testdemo", OracleType.NVarChar, 90);
[解决办法]
将“+”改为“||”
[解决办法]
BText LIKE '%' || :testdemo|| '%'
[解决办法]
PL/SQL中用|| 吧。。。
[解决办法]
SQL code
string sql= "SELECT COUNT(*) FROM TestTable WHERE BText LIKE '%'||:testdemo||'%'"; 

热点排行