运行时出现这种错误:
ERROR [22001] [INTERSOLV][ODBC SQL Server driver]String data, right truncated. Error in parameter 20.
有没有哪位碰到过相同的错误?请赐教!

解决方案 »

  1.   

    是否操作oracle数据库,并往其中存入文件数据或者blob数据,是这样出的错误?
      

  2.   

    往sybase数据库中增加一条记录,用的是vs c#.net
      

  3.   

    代码:
    System.Data.Odbc.OdbcConnection conn=new System.Data.Odbc.OdbcConnection();
    conn=menu.GetConnection();//连接数据库
    System.Data.Odbc.OdbcCommand cmd=new System.Data.Odbc.OdbcCommand("exec up_cm_tcgklzupd '1',?,?",conn);  //存储过程没有错误
    cmd.CommandType=System.Data.CommandType.StoredProcedure;

    cmd.Parameters.Add("@USID",System.Data.Odbc.OdbcType.VarChar,5);   //参数
    cmd.Parameters["@USID"].Value=(string)Session["UserUSNM"].ToString();
    cmd.Parameters["@USID"].Direction=System.Data.ParameterDirection.Input; cmd.Parameters.Add("@RETMSG",System.Data.Odbc.OdbcType.VarChar,100);  //输出参数
    cmd.Parameters["@RETMSG"].Value="";
    cmd.Parameters["@RETMSG"].Direction=System.Data.ParameterDirection.Output;System.Data.Odbc.OdbcDataReader myreader=cmd.ExecuteReader();
      

  4.   

    change
    System.Data.Odbc.OdbcCommand cmd=new System.Data.Odbc.OdbcCommand("exec up_cm_tcgklzupd '1',?,?",conn); //存储过程没有错误
    cmd.CommandType=System.Data.CommandType.StoredProcedure;with
    System.Data.Odbc.OdbcCommand cmd=new System.Data.Odbc.OdbcCommand("up_cm_tcgklzupd",conn); //存储过程没有错误
    cmd.CommandType=System.Data.CommandType.StoredProcedure;
    然后参数分别添加
      

  5.   

    问题终于解决了,多谢各位!
    问题@USID的长度5不够,产生right truncatedtoKnight94(愚翁):
    System.Data.Odbc.OdbcCommand cmd=new System.Data.Odbc.OdbcCommand("up_cm_tcgklzupd",conn);  
    我这里这样做会报没有参数的错,不知道你那里如何!
    多谢你的指点!以后还请多指教!