【发布时间】:2013-09-07 05:45:24
【问题描述】:
我是使用绑定变量的新手,所以我有一个小问题 - 我在 .NET 应用程序中使用 Oracle DB 和 ODP.NET,并且我正在使用这样的绑定变量
string sql = "select * from table1 where loc=:pLoc and pno=:pPno and sno=:pSno union all select * from table2 where loc=:pLoc and pno=:pPno and sno=:pSno union all
select * from table3 where loc=:pLoc and pno=:pPno and sno=:pSno";
OracleCommand _cmd = new OracleCommand(sql, DBFacade.DbConnection);
OracleParameter pLoc = new OracleParameter(":pLoc", OracleDbType.Varchar2, 3);
pLoc.Value = loc;
OracleParameter pSno = new OracleParameter(":pSno", OracleDbType.Varchar2, 10);
pLoc.Value = sno;
OracleParameter pPno = new OracleParameter(":pPno", OracleDbType.Varchar2, 18);
pLoc.Value = pno;
_cmd.Parameters.Add(pLoc);
_cmd.Parameters.Add(pSno);
_cmd.Parameters.Add(pPno);
_odaContractPrices.SelectCommand = _cmd;
我已经在其他 sql 语句中成功地使用了绑定变量(在更简单的查询中,例如“select * from table1 where column1=:param1 and column2=:param2”),但由于某种原因,在这个语句中它不起作用。谁能解释我为什么? 非常感谢!
【问题讨论】:
-
“不起作用”是什么意思?有什么症状?
-
我使用该适配器来填充数据集。 “不起作用”是指数据集是空的。
-
OracleCommand _cmd = new OracleCommand(sql, loc, sno, pno), DBFacade.DbConnection);甚至无法编译。 -
我的错误(复制粘贴错误)是:OracleCommand _cmd = new OracleCommand(sql, DBFacade.DbConnection);