C# Oracle更新查询无法使用C更新#
我正在尝试更新oracle中的表。但是更新不起作用,并且没有引发异常。请帮忙。提前谢谢C# Oracle更新查询无法使用C更新#,c#,oracle,C#,Oracle,我正在尝试更新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=
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();
是的,在执行Oracle update语句时,需要在最后一条语句之后使用Commit语句。 当您使用C#从OLEDB调用更新存储过程时,会触发自动提交
ExecuteNonQuery()实际上问题出在参数上。Add() 应根据Update语句中出现的情况添加参数。 实际订单应为:
cmd.Parameters.Add(ParamFREQUENCY_CDE);
cmd.Parameters.Add(ParamRING_SIZE);
cmd.Parameters.Add(ParamSSN);
cmd.Parameters.Add(ParamDOSIMETER_TYPE);
当您直接(例如从SQL Developer)使用一些值替换绑定变量运行
UPDATE
时,它是否工作?运行此更新后是否发出提交
?