C#执⾏Oracle的Sql语句参数顺序问题
以下⾯代码为例:
OracleConnection cn = new OracleConnection(connString);
string sql = @"delete from table1 t lumn1=:para_1 lumn2=:para_2 ";
OracleCommand cmd = new OracleCommand();
sql语句替换表中内容cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
List<OracleParameter> list = new List<OracleParameter>();
list.Add(new OracleParameter("para_2", OracleDbType.Varchar2, "1",ParameterDirection.Input));
list.Add(new OracleParameter("para_1", OracleDbType.Varchar2, "1001",ParameterDirection.Input));
cmd.Parameters.AddRange(list.ToArray());
int ret = cmd.ExecuteNonQuery();
执⾏上述sql时,出现不能删除想要的数据时,考虑参数顺序问题
解决办法1,把参数按照sql中参数出现的顺序排序
<pre name="code" class="csharp">list.Add(new OracleParameter("para_1", OracleDbType.Varchar2, "1001",ParameterDirection.Input)); list.Add(new OracleParameter("para_2", OracleDbType.Varchar2, "1",ParameterDirection.Input));
解决办法2,设置cmd按照变量名绑定参数
cmd.BindByName=true;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。