我使用ODP.NET Oracle.DataAccess.Client通过Asp.net c#插入记录在Oracle表中。 Oracle表是tblGroup和组名VARCHAR2,GROUPDETAILS VARCHAR2是列名 但数据并不inserting.I我用下面的代码数据没有通过asp.net使用ODP.NET插入oracle表
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.HandleError(Int32)上的Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure,Boolean bCheck) errCode,OracleConnection连接,字符串过程,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,Bool学校管理系统\ SchoolsManagementSystem \ App_Code \ DAL.cs中的第85行:SchoolsManagementSystem.Group中的第85行,学校管理系统.DAL.insertRecord(字符串StudentgroupName,字符串groupDetails)上的Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() .btnSubmit_Click(对象发件人,EventArgs e)在d:\ C#\ SchoolsManagementSystem \ SchoolsManagementSystem \ Group.aspx.cs:行26
指引,我怎样才能解决我的问题
上前缀有趣的说明。我没有要测试的Oracle,但是它引发了错误,或者引擎简单地忽略了前缀? – Steve
Oracle SQL解析器使用冒号指示绑定参数,无论是SQL,PL/SQL还是主机语言。 ADO驱动程序可能会或可能不会抱怨,但Oracle会。 @不是标识符或绑定变量的有效字符,因此可能会得到解析错误。我只知道它失败了,因为我有几个数据库工具可以销售Oracle和SQL Server的工作,我必须在两者之间使用条件代码。 – codenheim
谢谢你的好意,我只是好奇。 – Steve