我正在尝试更新oracle中的表。但是更新不起作用,并且没有抛出任何异常。请帮助。提前谢谢。
conn.Open();
string txtInsert = "Update ORDER_DOSIMETER set FREQUENCY_CDE=:ParamFREQUENCY_CDE, RING_SIZE=:ParamRING_SIZE where SSN=pkg_encrypt_decrypt.funcencrypt(:ParamSSN,'12345678') and DOSIMETER_TYPE= :ParamDOSIMETER_TYPE";
OracleCommand cmd = new OracleCommand(txtInsert, conn);
OracleParameter ParamSSN = new OracleParameter("SSN", OracleDbType.Varchar2, ParameterDirection.Input);
ParamSSN.Value = SavePersonDetails.SSN;
OracleParameter ParamDOSIMETER_TYPE = new OracleParameter("DOSIMETER_TYPE", OracleDbType.Varchar2, ParameterDirection.Input);
ParamDOSIMETER_TYPE.Value = SavePersonDetails.Type;
OracleParameter ParamRING_SIZE = new OracleParameter("RING_SIZE", OracleDbType.Varchar2, ParameterDirection.Input);
ParamRING_SIZE.Value = SavePersonDetails.RingSize;
OracleParameter ParamFREQUENCY_CDE = new OracleParameter("RING_SIZE", OracleDbType.Varchar2, ParameterDirection.Input);
ParamFREQUENCY_CDE.Value = SavePersonDetails.Frequency;
cmd.Parameters.Add(ParamSSN);
cmd.Parameters.Add(ParamDOSIMETER_TYPE);
cmd.Parameters.Add(ParamRING_SIZE);
cmd.Parameters.Add(ParamFREQUENCY_CDE);
cmd.ExecuteNonQuery();
答案 0 :(得分:0)
是的,当您执行Oracle更新语句时,您需要在最后一个语句后使用Commit语句。 使用C#从OLEDB调用更新存储过程时自动提交它 的ExecuteNonQuery()
答案 1 :(得分:0)
实际上问题出在Parameters.Add()上 应根据Update语句中的出现次数添加参数。 实际订单应为:
cmd.Parameters.Add(ParamFREQUENCY_CDE);
cmd.Parameters.Add(ParamRING_SIZE);
cmd.Parameters.Add(ParamSSN);
cmd.Parameters.Add(ParamDOSIMETER_TYPE);