数据不是通过asp.NET使用ODP.NET插入oracle表

本文关键字:NET 使用 ODP oracle 插入 asp 数据 | 更新日期: 2023-09-27 18:10:40

我正在使用ODP.NET Oracle.DataAccess.Client通过Asp.NET c#在Oracle表中插入记录。oracle表为tblGroup和GROUPNAME varchar2,GROUPDTAILS varchar2为列名但是数据没有插入。我正在使用以下代码

 public void insertRecord(string StudentgroupName, string groupDetails) 
            {
                using (OracleConnection con = GetConnection())
                {
                    OracleCommand cmd = new OracleCommand();
                    cmd.Connection = con; //assigning connection to command
                    cmd.CommandType = CommandType.Text; //representing type of command
                    cmd.CommandText = "INSERT INTO tblGroup (GROUPNAME,GROUPDETAILS) values(@GROUPNAME,@GROUPDETAILS)";
                    //adding parameters with value
                    cmd.Parameters.Add("@GROUPNAME", StudentgroupName);
                    cmd.Parameters.Add("@GROUPDETAILS", groupDetails);
                    con.Open(); //opening connection
                    cmd.ExecuteNonQuery();

                }
            }

并得到以下错误

Oracle.DataAccess.Client.OracleException ORA-00936:Oracle.DataAccess.Client.OracleException.HandleErrorHelper处缺少表达式(Int32 errCode、OracleConnection conn、IntPtr opsErrCtx、OpoSqlValCtx*pOpoSqlValCtx,Object src、String过程、布尔bCheck((Int32 errCode、OracleConnection conn、String procedure、IntPtr opsErrCtx、OpoSqlValCtx*pOpoSqlValCtx,Object src、Boolean bCheck(位于Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery((位于SchoolsManagementSystem.DAL.insertRecord(String StudentgroupName、String groupDetails(,位于d:''c#''SchoolsManagementSystem''SchoolsManageSystem''App_Code''DAL.cs:line 85SchoolsManagementSystem.Group.btSubmit_Click(对象发件人,EventArgs e(,位于d:''c#''SchoolsManagementSystem''SchoolsManagement System''Group.aspx。cs:line 26

指导我如何解决我的问题

数据不是通过asp.NET使用ODP.NET插入oracle表

在SQL语句中,使用冒号前缀表示绑定参数,而不是@:

INSERT INTO t (COL1) values(:param1)

使用@符号适用于SQL Server,但不适用于Oracle。

此外,bind语句只需要使用名称"GROUPNAME",参数中不需要前缀字符@或:。Add((调用。

像这样:

cmd.CommandText =
   "INSERT INTO tblGroup (GROUPNAME,GROUPDETAILS) values(:GROUPNAME, :GROUPDETAILS)";
cmd.Parameters.Add("GROUPNAME", StudentgroupName);
cmd.Parameters.Add("GROUPDETAILS", groupDetails);