conn.Open();
string selectSql = "select * from SDE.PS_DRAWINGINFO";
OracleDataAdapter adapter = new OracleDataAdapter(selectSql,conn);
DataSet dataset = new DataSet();
adapter.Fill(ds);
OracleCommand oraSelectCmd = new OracleCommand("select * from SDE.PS_DRAWINGINFO where DRAWDATE like '" +zhituDate.Text.Trim() + "' and DRAWNAME like '" + tuzhiName.Text.Trim() + "' and PROJECTNAME like '" + projectName.Text.Trim() + "'",conn);
object result = oraSelectCmd.ExecuteOracleScalar();
if(result ==null&&!Convert.IsDBNull(result))//判断是否存在记录
{
string insertSql = "insert into SDE.PS_DRAWINGINFO(DRAWDATE,DRAWNAME,PROJECTNAME,STOREID,DRAWDSIGNER,SYSTNAME,DRAWTYPE,NUMBER,CURRNUMBER,RESDATE,HANDERPERSON,REMARK) values(";
insertSql += "to_date(zhituDate.Text.Trim(),'yyyy-mm')" + ",'";
insertSql += tuzhiName.Text.Trim()+ "','";
insertSql += projectName.Text.Trim()+ "','";
insertSql += kucunID.Text.Trim()+ "','";
insertSql += designer.Text.Trim()+ ",";
insertSql += systemName.Text.Trim()+ "','";
insertSql += tuzhiStyle.Text.Trim()+ "',";
insertSql += decimal.Parse(zongshu.Text.Trim())+ ",";
insertSql += decimal.Parse(zongshu.Text.Trim())+ ",";
insertSql += "to_date(shoutuDate.Text.Trim(),'yyyy-mm-dd')"+ ",'";
insertSql += hander.Text.Trim()+ "','";
insertSql += .Text.Trim()+ "')";
OracleCommand oraInsertCmd = new OracleCommand(insertSql,conn);
oraInsertCmd.ExecuteNonQuery();
MessageBox.Show("保存成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
其中NUMBER,CURRNUMBER在数据库中是number类型错误:2007-06-15 11:24:07,761 [1672] ERROR operationLogger - [sde]ORA-01747: user.table.column, table.column 或列说明无效
|   at System.Data.OracleClient.OracleConnection.CheckError(OciHandle errorHandle, Int32 rc)
   at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals)
   at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor)
   at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciHandle& rowidDescriptor)
   at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
   at sewage.windows.drawingform.CheckDrawing.saveCheckDrawing() in d:\svnroot\sewage\code\sewage\windows\drawingform\checkdrawing.cs:line 461
多谢

解决方案 »

  1.   

    取出要执行的sql语句在数据库里调试一下
      

  2.   

    values(,'','','','";
    insertSql += designer.Text.Trim()+ ",";//这里手否少2个',一个和前边的对照,一个和后边的对照     ','',,,,'',''
      

  3.   

    insertSql += designer.Text.Trim()+ ",";改为了
    insertSql += designer.Text.Trim()+ "','";
    但是还是不行
    还有哪里有问题?
      

  4.   

    设个断点,取出insertSql,然后在查询分析器里看看,应该是哪个标点符号有问题。
      

  5.   

    string insertSql = "insert into SDE.PS_DRAWINGINFO(DRAWDATE,DRAWNAME,PROJECTNAME,STOREID,DRAWDSIGNER,SYSTNAME,DRAWTYPE,[NUMBER],[CURRNUMBER],RESDATE,HANDERPERSON,REMARK) values(";字段名用了关键字
    [NUMBER] [CURRNUMBER]
      

  6.   

    设置断点调试一下,看看你的最终sql语句。格式有问题没。