OracleCommand 参数不会自动匹配

使用Oracle的Oracle.DataAccess.dll的时候,在OracleCommand的commandtext加了一个参数,原以为参数是根据名字自动匹配的,后来发现默认是按顺序的。

如果需要按照参数名称对应传值 ,加上command.BindByName = true



INSERT INTO TEST
  VALUES
  (:ID1,
  :CALLNUM1,
  :CHANNEL1)
OracleParameter parameter_ID
= new OracleParameter("ID", OracleDbType.Int32); parameter_ID.Direction = ParameterDirection.Input; parameter_ID.Value = ID; command.Parameters.Add(parameter_ID); OracleParameter parameter_CALLNUM = new OracleParameter("CALLNUM", OracleDbType.Varchar2); parameter_CALLNUM.Direction = ParameterDirection.Input; parameter_CALLNUM.Value = CALLNUM; command.Parameters.Add(parameter_CALLNUM); OracleParameter parameter_CALLNUM = new OracleParameter("CALLNUM", OracleDbType.Varchar2); parameter_CALLNUM.Direction = ParameterDirection.Input; parameter_CALLNUM.Value = CALLNUM; command.Parameters.Add(parameter_CALLNUM);
以上传递值并不会报错,在使用ODP传参数时默认是按参数顺序传值的。
如果需要按照参数名称对应传值 ,加上command.BindByName = true;其实这2种做法效果是一样的,只是后者可能更直观一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值