困饶了一天的问题:往oracle插入数据时
PRODUCTION_ID是GUFEI.PRODUCTION的主键,非空;UNITBASIC_ID是外键和UNITBASIC表关联,也非空;
想提交5个textbox的内容到数据库啊,分别对应GUFEI.PRODUCTION表里的PRODUCTNO, PRODCODE,PUNIT,PRODNAME,PQUANTITY这5个,下面是提交button的代码:
protected void Button2_Click(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection( "Data Source=caora;User ID=gufei;Password=gufei; ");
//在此构造你所需的Sql语句。
String strSql = "Insert into GUFEI.PRODUCTION(PRODUCTION_ID,UNITBASIC_ID, PRODUCTNO, PRODCODE,PUNIT,PRODNAME,PQUANTITY) values(nvl((select max(PRODUCTION_ID) from GUFEI.PRODUCTION), 1), nvl((select max(UNITBASIC_ID) from GUFEI.PRODUCTION), 1), ' " + TextBox1.Text + " ', ' " + TextBox2.Text + " ', ' " + TextBox3.Text + " ', ' " + TextBox4.Text + " ', ' " + TextBox5.Text + " ') ";
OracleCommand cmd = new OracleCommand(strSql, conn);
cmd.Connection.Open();
//通过SqlCommand对象执行Sql命令语句即可。
cmd.ExecuteNonQuery();
执行的时候会报错:ORA-00001: 违反唯一约束条件 (GUFEI.SYS_C0020113)
弄了一天了没解决,大家帮下
------解决方案--------------------多半是主键重复了。
OracleCommand cmd 之前,加入
Response.Write(strSql);
Response.End();
看下你语句是否错了。
看不出来的话,拷贝你的SQL语句,拿到Oracle数据库管理器中执行下,看下,是不是一样的报错?
------解决方案--------------------同上,就是你插入PRODUCTION_ID的值跟数据库里有相同值
------解决方案--------------------唯一鍵重複﹗違反約束!