我使用oracle作为我的后端,我编写插入查询如下,我不知道是不是正确的方式,
insert into Emp_table (SL_NO,empane,empid,salaray) values(1,'sree',1002 ,:salary);
这里在查询我正在用存储过程计算工资并得到我的out参数工资所以我必须将它传递给我的插入查询所以我该怎么写。如果我像所示的那样写,我会得到以下错误
ORA-06550: line 1, column 175:
PL/SQL: ORA-00933: SQL command not properly ended
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
请帮助我。
答案 0 :(得分:13)
Microsoft deprecated their Oracle provider(System.Data.OracleClient),因此请使用第三方提供商,例如Oracle's Data Provider for .NET。下面的代码示例与FSX's answer基本相同,只是没有AddWithValue
方法的便利。
command.Parameters.Add(new OracleParameter("SL_NO", 1));
command.Parameters.Add(new OracleParameter("empane", "sree"));
答案 1 :(得分:11)
假设工资金额为20000,您可以尝试以下代码:
var commandText = "insert into Emp_table (SL_NO,empane,empid,salaray) values(:SL_NO,:empane,:empid,:salary)";
using (OracleConnection connection = new OracleConnection(connectionString))
using (OracleCommand command = new OracleCommand(commandText, connection))
{
command.Parameters.AddWithValue("SL_NO", 1);
command.Parameters.AddWithValue("empane", "sree");
command.Parameters.AddWithValue("empid", 1002);
command.Parameters.AddWithValue("salaray", 20000);
command.Connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();
}
答案 2 :(得分:0)
strin sql= "insert into Emp_table (SL_NO,empane,empid,salaray) values(:SL_NO,:empane,:empid,:salary)";
OracleCommand command = new OracleCommand(sql, connection)
command.Parameters.Add(new OracleParameter("SL_NO", 1);
command.Parameters.Add(new OracleParameter("empane", "sree"));
command.Parameters.Add(new OracleParameter(("empid", 1002));
command.Parameters.Add(new OracleParameter(("salaray", 20000));
command.Connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();