在做一个操作的测试的时候,用OracleParameter添加两个varchar2的数据,可是添加的内荣只有传进的内容的一半,不知什么原因?
代码如下:
        command.CommandType = CommandType.Text;
        command.CommandText = "insert into webapp.lb_image1(IDWAY,IMAGETEST,CREATEDATE) VALUES (:IDWAY,:IMAGETEST,sysdate)";
        OracleParameter[] parameterValue = {  
                                    new OracleParameter(":IDWAY",OracleType.VarChar,20),  
                                    new OracleParameter(":IMAGETEST",OracleType.VarChar,200),  
                                    };        parameterValue[0].Value = "TestImageTestImage";
        parameterValue[1].Value = "ImageTestImageTest";        foreach (OracleParameter parameter in parameterValue)
            command.Parameters.Add(parameter);        command.Connection = connection;
        OpenConnection();
        try
        {
            command.ExecuteNonQuery();
        }
        catch (Exception e)
        {
            throw;
        }
        finally
        {
            CloseConnection();
        }

解决方案 »

  1.   

      new OracleParameter(":IDWAY",OracleType.VarChar,20),  
      new OracleParameter(":IMAGETEST",OracleType.VarChar,200),   
    改成
      new OracleParameter(":IDWAY",OracleType.VarChar,40),  
      new OracleParameter(":IMAGETEST",OracleType.VarChar,400),   呢?
    数据库字段大小要匹配
      

  2.   

    如果是中文应该使用 OracleType.NVarChar类型
      

  3.   

    代码里应该没什么问题,你应该去CHECK下,数据库里对应字段的长度~~~
      

  4.   

    数据库字段是10,和100,我断点跟踪的command的parameter的值也都是对的,就是插到数据库里就成了一半了
      

  5.   


    你数据库字段是10,parameterValue[0].Value = "TestImageTestImage";而0的长度明显大于10了,当然会被截断了,如果没数错的话,IDWAY 里插入的应该是TestImageT
    你要把IDWAY 的数据库字段长度给改成20.
      

  6.   

    楼上,不是这个问题,我要是parameterValue[0].Value = "TestImageT";那么插入的就只有5个字符,即TestI还有问题,就是一旦换成OracleType.NVarChar,就会报错"[System.Data.OracleClient.OracleException] = {"ORA-12571: TNS:包写入程序失败\n"}"但是能插入数据,但是插入的是空的
    很是晕啊,拜求各位高手解答一下。
      

  7.   

    你把OracleParameter 的TYPE 改成Varchar2试试,按道理说应该不会出错,不过想不出来了,你试试
      

  8.   

    有Varchar2类型么?
    应该是NVarchar,一旦改成这个就报错。。上面了。。
      

  9.   

    我现在机器上没装ORACLE,但是我印象中应该是有个 OracleDbType.Varchar2
      

  10.   

    我现在机器上没有ORACEL环境,但是我印象中应该是有OracleDbType.Varchar2