为什么我改  ("SELECT * from sale where date='2000-1-2'");这个语句查不出来啊?数据库里有这个'2000-1-2'啊
try {
           sumJLabel.setText(darefrom);
          myResultSet=  myStatement.executeQuery
        ("SELECT * from sale ");
//("SELECT * from sale where date='2000-1-2'");
      
          while (myResultSet.next())          {
      
             sumJTextArea.append
             (
              myResultSet.getDate("date")+"  "+myResultSet.getString("name")+"  "+myResultSet.getString("sum")+"   "+myResultSet.getString("hospital")+"  "
             +myResultSet.getString("xiaoji")+"  "+myResultSet.getString("a")+"  "+myResultSet.getString("b")+"  "+myResultSet.getString("c")+"\n");
                       }

解决方案 »

  1.   

    是有错误,但是不知道错哪里了,说from那里,但错哪里了啊还有一个问题:我这个销售表里有   日期(年月日) 姓名  医院 销售金额
    每个都不是唯一的,怎么设计主键呢,就是我要修改的时候怎么输入一个唯一的值,判断修改那个记录啊
      

  2.   

    SQL查询语句肯定是没有问题的,要么是你连的数据库不对,要么表不对,要么是字段不对了,不过还是建议你以后增加字段的时候不要使用类似DATE这种系统保留字。
    关键字可以增加一个ID字段来做
      

  3.   

    刚才没看见dhtkhnt(龙卷风)的回复哦主键问题知道了,谢谢大家可是查询语句还是有问题 
     String aa="2000-01-02";
    ("SELECT * from sale where day='"+aa+"'");这个语句在access里都通不过,access里SELECT sale.*
    FROM sale
    WHERE (((sale.day)=#01-02-2000#));这个是可以的,可是#01-02-2000#这个在java里有问题
      

  4.   

    ("SELECT * from sale where day='"+aa+"'");
    改为:
    ("SELECT * from sale where [day]='"+aa+"'");
    原来的想通过要将
    ("SELECT * from sale where date='2000-1-2'");
    改为:
    ("SELECT * from sale where [date]='2000-1-2'");
      

  5.   

    ("SELECT * from sale where [day]='"+aa+"'");
    这个没有报错,但是查询没有结果,好奇怪的问题
      

  6.   

    SELECT * from sale where [day]  like '%"+aa+"%'
      

  7.   

    lean_liao() ( ) 
    ^_^.可以了呢
    为什么要这样啊
      

  8.   

    如果是查询日期从 到  ("SELECT * from sale where [day] from like '%"+datefrom+"%' to  like '%"+dateto+"%'");这样好像还是不行
      

  9.   

    如果是查询日期从 到
    SELECT * from sale where [day] > '"+datefrom+"' and [day]  < '"+dateto+"'
    一个是字符串,一个是datetime  自己去理解
      

  10.   


    String a="2000-1-3";(" SELECT * from sale where day >='%"+a+"%'");
    为什么不行呢?
    SELECT * from sale where [day] > '"+datefrom+"' and [day]  < '"+dateto+"'
    这个也说不行,说not a statement
      

  11.   

    sorry啊,刚才我没弄对
    我把我的问题列一下:1.
    ("SELECT * from sale where [day] > '"+datefrom+"' and [day]  < '"+dateto+"'");
    这个编译没问题,运行没结果???
    这里我是这么设计的:(我的日和月123456789都是一位的数字,不是01,02...这样的)
    String  datefy=(String)datefromyJComboBox.getSelectedItem();
    String    datefm=(String)datefrommJComboBox.getSelectedItem();
    String datefd=(String)datefromdJComboBox.getSelectedItem();
    String datety=(String)datetoyJComboBox.getSelectedItem();
    String datetm=(String)datetomJComboBox.getSelectedItem();
    String datetd=(String)datetodJComboBox.getSelectedItem();
    String datefrom=datefy+"-"+datefm+"-"+datefd;
    String dateto=datety+"-"+datetm+"-"+datetd;数据库里的日期是2000-1-3这种格式的2.当我String a="2000-1-3";("SELECT * from sale where day like '%"+a+"%' ");这个是没问题的
    但是如果我用了上面那个String datefrom=datefy+"-"+datefm+"-"+datefd;
     ("SELECT * from sale where day like '%"+datefrom+"%' ");这个就有问题了
    3当我String a="2000-1-3";String b="2000-3-3";
    (" SELECT * from sale where day >= '%"+a+"%' and day <='%"+b+"%'");这个编译没问题
    运行没有查询结果
      

  12.   

    datefrom,dateto先转为Date型数据再比较大小。例如:int fy=Integer.parseInt(datefy)-1900;
    int fm=Integer.parseInt(datefm)-1;
    int fd=Integer.parseInt(datefd);
    int ty=Integer.parseInt(datety)-1900;
    int tm=Integer.parseInt(datetm)-1;
    int td=Integer.parseInt(datetd);
    java.sql.Date dateform=new java.sql.Date(fy,fm,fd);
    java.sql.Date dateto=new java.sql.Date(ty,tm,td);
    ("SELECT * from sale where [day] >'"+mydatefrom+"' and [day]  <'"+mydateto+"'");
    这样还不行我也无能为力啦!
      

  13.   

    上面的不行,SQL语句试着改为:
    ("SELECT * from sale where [day]>"+mydatefrom+" and [day]<"+mydateto");
    即去掉单引号
      

  14.   

    ^_^hefei0603(风雨)不错啊("SELECT * from sale where  day > "+datefrom+" ");
    这个的却没问题了
    不过还有个小小的问题(加了and就不行了又)("SELECT * from sale where  day > "+datefrom+" and day < "+dateto+" ");
    还有就是
    Note: H:\java\my project\sale\最新saletextarea\saletextarea\sale.java uses or overrides a deprecated API.
    Note: Recompile with -deprecation for details.不知道哪个过时了
      

  15.   

    ("SELECT * from sale where  day > "+datefrom+" and day < "+dateto+" ");
    加不加单引号都不行吗?
      

  16.   

    Note:不是错误,只是提醒而已。因为JDK里面注明了java.sql.Date(int,int,int)这个构造方法不推荐使用(但还是能用。)查不出东西和这2个NOTE无关。年一定要减去1900才是正确的。
      

  17.   


    我这么测试了一下,我觉得是我的JComboBox的选择有问题因为不论我日期怎么选
    ("SELECT * from sale where  day > "+datefrom+" ");都能把所有的选择出来但是我专门打印了datefrom,的却是我选择的日期啊我的数据库是:  day  日期/时间
    day
    2000-1-3
    2000-1-3
    2000-1-3
    2000-1-3
    2000-1-3
    2000-1-25
    2000-1-3
    2000-1-3
    2000-1-3大侠们能不能留个邮箱什么的我把代码发过去瞧瞧
      

  18.   

    郁闷了,如果你的数据类型确实是datetime或者smalldatetime的话,你试下这个方法。datefrom和dateto不用转化了,就让它是字符串。
    ("SELECT * from sale where  day >convert(datetime,'"+datefrom+"') and day <convert(datetime,'"+dateto+"')");
    这样是在数据库里转化的,再出问题就没办法啦!
      

  19.   

    这样的情况好象我也碰到过,你把数据库里的类型改成STRING类型的试试.DATE类型的不是很好读取,而且取出来的值好象有问题.
    也许因为我是菜鸟,所以没办法取到正确的值吧,呵呵!
    我的目的,给你个灵感,让你不要死钻一角.至于真正解决问题,我能力有限,请谅解!
      

  20.   

    access的日期,用作字符串的时候,尝试一下两边用#引起来select * from AAA where effdate=#2000-1-2#
      

  21.   

    我晕死,永远也弄不好
    我为什么新加了个字段id,自动增加的,但是显示不出来
    myResultSet.getDate("day")+"\t"+myResultSet.getString("name")+"\t"+myResultSet.getString("hospital")+"\t"+myResultSet.getString("sale")+"\t"
                 +myResultSet.getString("back")+"\t"+myResultSet.getString("profit")+"\n");