我有一个C#ashx处理程序我遇到了问题,我有两个建立在彼此之上的查询,第一个查询接受一个参数,而第二个查询接受原始查询,包围它并采取两个返回行号的参数
错误是ORA-01008:并非所有变量都绑定
第一个查询(部分)
sSql += @"AND a.assignment_type in ('PS','SS')
AND ((:byAuthor = 'N' AND a.assignment_type in ('PS','SS'))
第二次查询
string filteredSql = @"select * from (";
filteredSql += sSql;
filteredSql +=@" ) WHERE rowsNumerator BETWEEN :iDisplayStart AND :iDisplayEnd";
查询执行
DataSet totalResults = dbi.GetDynamicDataSet(sSql, tcParameters);
int iTotalCount = totalResults.Tables[0].Rows.Count;
DataSet filteredResults = dbi.GetDynamicDataSet(filteredSql, dtParameters);
请求声明
var byAuthor = context.Request.QueryString["byAuthor"].ToString();
var iDisplayLength = int.Parse(context.Request["iDisplayLength"]);
var iDisplayStart = int.Parse(context.Request["iDisplayStart"]);
结合
ListDictionary tcParameters = new ListDictionary();
tcParameters.Add("byAuthor", byAuthor);
ListDictionary dtParameters = new ListDictionary();
dtParameters.Add("iDisplayStart", iDisplayStart);
dtParameters.Add("iDisplayEnd", iDisplayEnd);
我尝试在两者中使用相同的列表字典,但这会返回ora-illegal var name
ListDictionary dtParameters = new ListDictionary();
dtParameters.Add("byAuthor", byAuthor);
dtParameters.Add("iDisplayStart", iDisplayStart);
dtParameters.Add("iDisplayEnd", iDisplayEnd);
最后,我希望将变量绑定在我的sql中,而不是串联连接,如果需要,我可以提供整个ashx文件,谢谢你给我任何知识