带企业库的参数化oracle查询
我的.cs文件包含以下代码带企业库的参数化oracle查询,oracle,c#-3.0,enterprise-library,Oracle,C# 3.0,Enterprise Library,我的.cs文件包含以下代码 DbCommand dbc = db.GetStoredProcCommand( string.Format(ConfigurationSettings.AppSettings["INSERT_TBLREPORTTYPE"] , rtype, zoneid, name)); 我在web.cofig中的查询是: <add key="INSERT_TBLREPORTTYPE" value="INS
DbCommand dbc =
db.GetStoredProcCommand(
string.Format(ConfigurationSettings.AppSettings["INSERT_TBLREPORTTYPE"]
, rtype, zoneid, name));
我在web.cofig中的查询是:
<add key="INSERT_TBLREPORTTYPE"
value="INSERT INTO TBLREPORT(ID,TYPE,RELATIONID,ISACTIVE,NAME)
VALUES(SEQ_REPORT.NEXTVAL,{0},{1},0,{2}) "/>
而且
dbc.Parameters[0].DbType = DbType.String;
dbc.Parameters[0].Value = name;
dbc.Parameters[1].DbType = DbType.Int32;
dbc.Parameters[1].Value = zoneid;
dbc.Parameters[2].DbType = DbType.String;
dbc.Parameters[2].Value = rtype;
他们都没有工作。有人能给我一些建议吗???Oracle的参数前缀是
:
。因此,您应该将SQL更改为:
<add key="INSERT_TBLREPORTTYPE"
value="INSERT INTO TBLREPORT(ID, TYPE, RELATIONID, ISACTIVE, NAME)
VALUES(SEQ_REPORT.NEXTVAL, :TYPE, :RELATIONID, 0, :NAME) "/>
解释“它们都不起作用…”你是否会遇到像ORA-???这样的错误?发生了什么?{“此OracleParameterCollection的索引0无效,计数为0”。}System.IndexOutofrangeException我认为参数应该是@NAME、@RELATIONID、@TYPE,而不是{0}、{1}、{2}上面的任何方法…即db.addinParametere和dbc.Parameter[int index]
<add key="INSERT_TBLREPORTTYPE"
value="INSERT INTO TBLREPORT(ID, TYPE, RELATIONID, ISACTIVE, NAME)
VALUES(SEQ_REPORT.NEXTVAL, :TYPE, :RELATIONID, 0, :NAME) "/>
db.AddInParameter(dbc, ":NAME", DbType.String, name);