根据错误报告,是"s_com=cha"问题!
s_com是VARCHAR类型(即变长字符串),你跟它分配的最大长度为几呢?如果你取出的cha的长度大于s_com的最大长度呢?
所以你可以再查一下s_com是否分配的最大长度有误,最好分配大一点!

解决方案 »

  1.   

    改成String  cha = (String)request.getParameter("cha");试试
      

  2.   

    这好像是动态查询吧。
    不能这样写,要是仅仅在DBMS中,哪有像select * from supplier where s_com='"+cha+"'这样的查询语言的。
    要用PreparedStatement进行带参数的查询
      

  3.   

    我怀疑是中文乱码的问题
    你先out.println(request.getParameter("cha"));
    看看~
      

  4.   

    我也用过过你这种方式查询,是没有问题的。
    建议你对“cha”进行跟踪,比如:
    cha=request.getParameter("cha") == null? "0" : request.getParameter("cha")
    看看是否是你想要的结果。
      

  5.   

    我找到原因了 为了支持中文我在con=DriverManager.getConnection()里家了useUnicode=true&characterEncoding=GB2312");
    所以是这个地方有问题 但不知道为什么???
      

  6.   

    我找到原因了 为了支持中文我在con=DriverManager.getConnection()里家了useUnicode=true&characterEncoding=GB2312");
    所以是这个地方有问题 但不知道为什么???