C# sql参数更改错误
这是我的工作代码C# sql参数更改错误,c#,sql,oracle,C#,Sql,Oracle,这是我的工作代码 strQuery = @"SELECT FROM IBK_CO_USERS where upper(user_id)= upper(:userid) AND co_id= :Com_Id"; ocommand = new OracleCommand(); if (db.GetConnection().State == ConnectionState.Open) { ocommand.CommandText = strQuery; ocommand.C
strQuery = @"SELECT FROM IBK_CO_USERS where upper(user_id)= upper(:userid) AND co_id= :Com_Id";
ocommand = new OracleCommand();
if (db.GetConnection().State == ConnectionState.Open)
{
ocommand.CommandText = strQuery;
ocommand.Connection = db.GetConnection();
ocommand.Parameters.Add("userid", OracleDbType.Varchar2);
ocommand.Parameters["userid"].Value = userID;
ocommand.Parameters.Add("Com_Id", OracleDbType.Varchar2);
ocommand.Parameters["Com_Id"].Value = Comid;
odatareader = ocommand.ExecuteReader();
odatareader.Read();
}
我又像那样改变了
ocommand.Parameters.Add("Com_Id", OracleDbType.Varchar2);
ocommand.Parameters["Com_Id"].Value = Comid;
ocommand.Parameters.Add("userid", OracleDbType.Varchar2);
ocommand.Parameters["userid"].Value = userID;`
现在它不起作用了。我是否应该按照发送顺序设置参数值?我注意到您需要考虑的以下部分:
db.open()
(您只需检查它是否打开) ocommand.Parameters.Add("Com_Id", OracleDbType.Varchar2);
ocommand.Parameters["Com_Id"].Value = Comid;
ocommand.Parameters.Add("userid", OracleDbType.Varchar2);
ocommand.Parameters["userid"].Value = userID;
相当于:
ocommand.Parameters.Add("userid", OracleDbType.Varchar2);
ocommand.Parameters["userid"].Value = userID;
ocommand.Parameters.Add("Com_Id", OracleDbType.Varchar2);
ocommand.Parameters["Com_Id"].Value = Comid;
获得不同结果的唯一方法是更改名称-值配对,例如:
ocommand.Parameters.Add("userid", OracleDbType.Varchar2);
ocommand.Parameters["userid"].Value = Comid;
ocommand.Parameters.Add("Com_Id", OracleDbType.Varchar2);
ocommand.Parameters["Com_Id"].Value = userID;
结果与前两个示例不同
但是,在Oracle ODP.Net文档中,默认情况下,参数是通过位置绑定的。如果要将其设置为按名称集绑定:
ocommand.BindByName = true;
是的,代码有一些问题。但我的问题是,我们是否应该根据查询设置参数。我们可以更改参数顺序吗?我在oracle数据库中工作,当我使用第二种方式时,它不工作
ocommand.Parameters.Add("userid", OracleDbType.Varchar2);
ocommand.Parameters["userid"].Value = Comid;
ocommand.Parameters.Add("Com_Id", OracleDbType.Varchar2);
ocommand.Parameters["Com_Id"].Value = userID;
ocommand.BindByName = true;