当前位置: 代码迷 >> ASP.NET >> 往oracle插入数据时的有关问题
  详细解决方案

往oracle插入数据时的有关问题

热度:7202   发布时间:2013-02-25 00:00:00.0
往oracle插入数据时的问题
提交textbox中的内容到数据库,下面是提交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(PRODUCTNO,   PRODCODE,PUNIT,PRODNAME,PQUANTITY)   values( ' "   +   TextBox1.Text   +   " ', ' "   +   TextBox2.Text   +   " ', ' "   +   TextBox3.Text   +   " ', ' "   +   TextBox4.Text   +   " ', ' "   +   TextBox5.Text   +   " ') ";
                OracleCommand   cmd   =   new   OracleCommand(strSql,   conn);
                cmd.Connection.Open();
                //通过SqlCommand对象执行Sql命令语句即可。      
                cmd.ExecuteNonQuery();
                //cmd.Connection.Close();
点击提交后报错ORA-01400:   无法将   NULL   插入   ( "GUFEI ". "PRODUCTION ". "PRODUCTION_ID ")
PRODUCTION_ID是PK我知道不能为空,但是我textbox中的内容没它,我该怎么做呢

------解决方案--------------------------------------------------------
那你这个 PRODUCTION_ID 的值从哪里来呢?是个序列吗?

还有,楼主,你上一个帖子还没结
------解决方案--------------------------------------------------------
PRODUCTION_ID你要设置为自增字段,要不就PK为空
------解决方案--------------------------------------------------------
String strSql = "Insert into GUFEI.PRODUCTION(PRODUCTION_ID, PRODUCTNO, PRODCODE,PUNIT,PRODNAME,PQUANTITY) values(coalesce(production_id,0)+1, ' " + TextBox1.Text + " ', ' " + TextBox2.Text + " ', ' " + TextBox3.Text + " ', ' " + TextBox4.Text + " ', ' " + TextBox5.Text + " ') ";
------解决方案--------------------------------------------------------
写法错误

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 + " ') ";
  相关解决方案