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)
弄了一天了没解决,大家帮下

解决方案 »

  1.   

    nvl((select max(PRODUCTION_ID) from GUFEI.PRODUCTION)+1, 1), 改成这样,我自己解决了哈哈
      

  2.   

    建一个GUFEI.PRODUCTION表的序列不就可以了吗
      

  3.   

    序列怎么建?我以前都用的sql server
      

  4.   

    create sequence sq_test
    start with 1
    increament by 2
    ...
    还有很多参数,具体看看书就知道了,就是生成一个自动编号生成器