What query syntax should I use for inserting records in an Oracle database? What query syntax should I use for inserting records in an Oracle database? oracle oracle

What query syntax should I use for inserting records in an Oracle database?


You need to use the named parameter for your command

string str = "Insert into EMP_DETAIL(EmpId, Name, Age) values (:EmpId, :Name, :Age)";OracleCommand cmd = new OracleCommand();cmd.CommandText = str;  //cmd.CommandText = Text; not sure why did you use Text herecmd.Connection = con;cmd.Parameters.Add(new OracleParameter("EmpId", OracleDbType.Varchar2)).Value = txtEmpId;cmd.Parameters.Add(new OracleParameter("Name", OracleDbType.Varchar2)).Value = txtName;cmd.Parameters.Add(new OracleParameter("Age", OracleDbType.Int16)).Value = int.Parse(txtAge.Text);cmd.ExecuteNonQuery();


As agent5566 said, and from OracleCommand.Parameters property;

When using named parameters in an SQL statement called by an OracleCommand of CommandType.Text, you must precede the parameter name with a colon (:)

Use them like;

using(var con = new OracleConnection(constr))using(var cmd = con.CreateCommand()){   cmd.CommandText = @"Insert into EMP_DETAIL(EmpId, Name, Age)                       values (:EmpId, :Name, :Age)";   cmd.Parameters.Add(new OracleParameter("EmpId", OracleDbType.Varchar2)).Value = txtEmpId;   cmd.Parameters.Add(new OracleParameter("Name", OracleDbType.Varchar2)).Value = txtName;   cmd.Parameters.Add(new OracleParameter("Age", OracleDbType.Int16)).Value = int.Parse(txtAge.Text);   con.Open();   cmd.ExecuteNonQuery();}

By the way, System.Data.OracleClient has been marked as deprecated in .NET 4 version. You might wanna use Oracle Data Provider for .NET instead.

As an alternative, DataDirect and DevArt also have their own oracle providers for .NET.