Oracle参数化更新查询c#

Joo*_*w K 2 sql oracle oracle-manageddataaccess

它应该工作,但它没有。

我已经推荐了其他人,但找不到原因。

 OracleCommand cmd = con.CreateCommand();           
 var query = $@"UPDATE Customer SET ContactName = :ct WHERE CustomerID = :id";
 cmd.CommandText = query;
 cmd.Parameters.Clear();
 cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Varchar2, "bbb1", System.Data.ParameterDirection.Input));
 cmd.Parameters.Add(new OracleParameter(":ct", OracleDbType.Varchar2, "Joon", System.Data.ParameterDirection.Input));
 var rst = cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

提前致谢。

Joo*_*w K 6

我找到了为什么它没有更新表。

为了使它工作,我按照查询参数的顺序添加了参数,并发现它有效。但是我仍然不明白为什么添加参数的顺序对于使其工作如此重要。但是很清楚的是,当我这样做时它正在工作:

 OracleCommand cmd = con.CreateCommand();           
 var query = $@"UPDATE Customer SET ContactName = :ct WHERE CustomerID = :id";
 cmd.CommandText = query;
 cmd.Parameters.Clear();

 cmd.Parameters.Add(new OracleParameter(":ct", OracleDbType.Varchar2, "Joon", System.Data.ParameterDirection.Input));
 cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Varchar2, "bbb1", System.Data.ParameterDirection.Input));
 var rst = cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

感谢所有关注它的人。