b = db.getResult("Select * from Sale,Merch where Sale.MerchID=Merch.MerchID and Sale.SaleDate='" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "'");我可以通过此代码实现当天的筛选,如果我想实现当月的该怎么写啊 
就是要把Sale表中的SaleDate和dateTimePicker中的月份对应得列查找出来

解决方案 »

  1.   

    b = db.getResult("Select * from Sale,Merch 
    where Sale.MerchID=Merch.MerchID 
    and month(Sale.SaleDate)='" + dateTimePicker1.Value.Month.ToString() + "'");
      

  2.   


    这个好象不对的。
    光month不行,可能出现其它年份的。要year+month的写法
      

  3.   

    b = db.getResult("Select * from Sale,Merch where Sale.MerchID=Merch.MerchID and datediff(month,Sale.SaleDate,'" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "'")=0);显示当月的
      

  4.   

    报错啊错误 1 应输入 ; E:\毕业设计\WindowsApplication1\WindowsApplication3\WindowsApplication3\salestatus.cs 99 184 WindowsApplication3
    错误 2 无效的表达式项“)” E:\毕业设计\WindowsApplication1\WindowsApplication3\WindowsApplication3\salestatus.cs 99 184 WindowsApplication3
      

  5.   

    新问题出现了
    下面的代码能实现将数据库中符合条件的第一行数据显示,但此行以后即使符合也显示不了,我想应该用个循环吧,但是我不会写 private void rbmonth_CheckedChanged(object sender, EventArgs e) 

    if (this.rbmonth.Checked == false) 
    return; 
    DBTools db = new DBTools(); 
    try 

    b = db.getResult("Select * from Sale,Merch where Sale.MerchID=Merch.MerchID and year(Sale.SaleDate)='" + dateTimePicker1.Value.ToString("yyyy") + "' and month(Sale.SaleDate)='"+dateTimePicker1.Value.ToString("MM")+"'"); 
    if (b.Read()) 

    ListViewItem li = new ListViewItem(); 
    li.Text = b["SaleID"].ToString(); 
    li.Tag = li.Text; 
    bid.Add(li.Tag.ToString()); 
    li.SubItems.Add(b["MerchName"].ToString());