语句很简单,就一个插入语句啊:insert into TB_PROOFIMAGE(PROOFID,USERID,PROOF_TYPE,PROOF_USE,PROOF_IMAGE) values ('19527e5d-e9cb-4ce2-bd1a-9f03aca8096f','pl','介绍信','2',System.Byte[])我的PROOF_IMAGE是BLOB类型,保存图片byte[]数组的啊。语句末尾一直报错:缺失逗号!!!!请高手指点指点啊。这是为什么呢??????????

解决方案 »

  1.   

    使用OracleParameter 来保存..具体方法和SQL一样.
      

  2.   

    我用了动软的代码生成器,那些增删改查的语句都是直接生成的。如下:
    StringBuilder strSql=new StringBuilder();
    StringBuilder strSql1=new StringBuilder();
    StringBuilder strSql2=new StringBuilder();
    if (model.PROOFID != null)
    {
    strSql1.Append("PROOFID,");
    strSql2.Append("'"+model.PROOFID+"',");
    }
    if (model.USERID != null)
    {
    strSql1.Append("USERID,");
    strSql2.Append("'"+model.USERID+"',");
    }
    if (model.PROOF_TYPE != null)
    {
    strSql1.Append("PROOF_TYPE,");
    strSql2.Append("'"+model.PROOF_TYPE+"',");
    }
    if (model.PROOF_USE != null)
    {
    strSql1.Append("PROOF_USE,");
    strSql2.Append("'"+model.PROOF_USE+"',");
    }
    if (model.PROOF_IMAGE != null)
    {
    strSql1.Append("PROOF_IMAGE,");
    strSql2.Append(""+model.PROOF_IMAGE+",");
    }
    strSql.Append("insert into TB_PROOFIMAGE(");
    strSql.Append(strSql1.ToString().Remove(strSql1.Length - 1));
    strSql.Append(")");
    strSql.Append(" values (");
    strSql.Append(strSql2.ToString().Remove(strSql2.Length - 1));
    strSql.Append(")");
    DbHelperOra.ExecuteSql(strSql.ToString());
      

  3.   

    上面的代码是动软生成的...也够可以的了.. if (model.PROOF_IMAGE != null) 

    strSql1.Append("PROOF_IMAGE,"); 
    strSql2.Append("@PROOF_IMAGE,");   

    DbHelperOra.ExecuteSql(strSql.ToString()); 这个方法应该有重载..OracleParameter[] _Parameter = new OracleParameter[1];
    _Parameter[0] = new System.Data.OracleClient.OracleParameter("@PROOF_IMAGE", System.Data.OracleClient.OracleType.Blob);
    _Parameter[0].Value = model.PROOF_IMAGE;传递 _Parameter到 ExecuteSql方法里..如果没有你的重构造一个方法在  OracleCommand.Parameters 里添加 _Parameter参数...