C# 来自C接口的Oracle更新查询
我对C中的更新查询有问题。奇怪的是,我对更新有问题,但是选择、删除和插入工作C# 来自C接口的Oracle更新查询,c#,oracle,sql-update,C#,Oracle,Sql Update,我对C中的更新查询有问题。奇怪的是,我对更新有问题,但是选择、删除和插入工作 public void updateTeacherInfo(string SSN, string Classroom, string salary, string tenured, string phone) { OracleConnection conn = new OracleConnection("myconnectionstring;"); conn.Open()
public void updateTeacherInfo(string SSN, string Classroom, string salary, string tenured, string phone)
{
OracleConnection conn = new OracleConnection("myconnectionstring;");
conn.Open();
OracleCommand cmd = new OracleCommand("Update Teachers Set classroom_number = :TRM, Salary = :TSALARY, Tenured = :TTENURE, Phone_numer = :TPHONE Where SSN = :TSSN", conn);
OracleCommand commit = new OracleCommand("COMMIT", conn);
cmd.Parameters.Add(new OracleParameter(":TSSN", SSN));
cmd.Parameters.Add(new OracleParameter(":TRM", Classroom));
cmd.Parameters.Add(new OracleParameter(":TSALARY", salary));
cmd.Parameters.Add(new OracleParameter(":TTENURE", tenured));
cmd.Parameters.Add(new OracleParameter(":TPHONE", phone));
int i = cmd.ExecuteNonQuery();
int k = commit.ExecuteNonQuery();
MessageBox.Show(i + " rows affected");
MessageBox.Show(k + " rows affected");
conn.Close();
}
编辑*该方法的其余部分以清除错误,而且它不会抛出任何错误,但不会更新数据库。放置参数。按正确的顺序添加。在更新查询中
"Update Teachers Set classroom_number = :TRM, Salary = :TSALARY, Tenured = :TTENURE, Phone_numer = :TPHONE Where SSN = :TSSN"
:TRM首先发生,同样发生。所以保留参数。也按相同的顺序添加。它会起作用的。顺序如下:
cmd.Parameters.Add(new OracleParameter(":TRM", Classroom));
cmd.Parameters.Add(new OracleParameter(":TSALARY", salary));
cmd.Parameters.Add(new OracleParameter(":TTENURE", tenured));
cmd.Parameters.Add(new OracleParameter(":TPHONE", phone));
cmd.Parameters.Add(new OracleParameter(":TSSN", SSN));
您正在使用的参数值的设置是什么?它到底是如何工作的:错误消息?没有更新?我的C接口,这是一个从form1调用的方法,变量是正确的,因为我以前让它给我一个列出所有参数的消息框。很抱歉,没有更新任何内容,但没有任何错误消息。很简单:在C中您的SSN数据类型是什么,在Oracle中它的数据类型是什么?此外,所讨论的SSN是否有前导零?我在过去处理C类型是数值int、long等,Oracle类型是字符串char、varchar2等时遇到过麻烦,或者反过来,当SSN有一个前导零或两个时,麻烦似乎会加剧。