簡體   English   中英

數據不是通過asp.net使用ODP.NET插入oracle表

[英]Data is not inserting oracle table using ODP.NET through asp.net

我正在使用ODP.NET Oracle.DataAccess.Client通過Asp.net c#在Oracle表中插入記錄。 oracle表是tblGroup和GROUPNAME varchar2,GROUPDETAILS 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上的Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure,Boolean bCheck)中缺少表達式.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,String procedure,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,Boolean bCheck)at SchoolsManagementSystem.DAL.insertRecord(String StudentgroupName)上的Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() ,字符串groupDetails)在d:\\ c#\\ SchoolsManagementSystem \\ SchoolsManagementSystem \\ App_Code \\ DAL.cs:第85行:SchoolsManagementSystem.Group.btnSubmit_Click(Object sender,EventArgs e),位於d:\\ c#\\ SchoolsManagementSystem \\ SchoolsManagementSystem \\ Group.aspx.cs :第26行

指導我如何解決我的問題

在SQL語句中,使用冒號前綴表示綁定參數,而不是@:

INSERT INTO t (COL1) values(:param1)

使用@符號適用於SQL Server,而不適用於Oracle。

此外,您的綁定語句只需使用名稱“GROUPNAME”,在parameters.Add()調用中不需要前綴字符@或:。

像這樣:

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

cmd.Parameters.Add("GROUPNAME", StudentgroupName);
cmd.Parameters.Add("GROUPDETAILS", groupDetails);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM