2013-03-03 68 views
0

我想使用以下sql查询从数据库检索数据,但这是行不通的。我正在尝试根据输入日期获取数据。数据库中的日期格式为03/03/2013。以下查询正确的问题。SQL查询检索数据使用日期作为where子句

public DataSet OrderByDate(string date1, string date2) 
     { 


      // string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Amrit\\Desktop\\Database.accdb ;Persist Security Info=False;"; 
      DataSet dataSet = new DataSet(); 
      OleDbConnection oleConn = new OleDbConnection(connString); 

      try 
      { 
       oleConn.Open(); 
       string sql = "SELECT Order.OrderNumber, (Customer.Title +SPACE(2)+ Customer.CustomerName) as [Customer Name], Customer.CustomerEbayname, Customer.EmailAddress, Customer.PhoneNumber, (Customer.Address1 + SPACE(2) + Customer.Address2 + SPACE(2)+ Customer.City + SPACE(2) + Customer.PostCode + SPACE(2) + Customer.Country) as Address, Order.ItemPurchased, Order.PurchasedDate, Order.TotalPrice FROM Customer INNER JOIN [Order] ON Customer.[CustomerID] = Order.[CustomerID] WHERE [PurchasedDate] BETWEEN #date1# AND #date2#";     OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sql, oleConn); 
       dataAdapter.Fill(dataSet, "Customer"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("An exception has been occured\n" + ex.ToString()); 
       Console.WriteLine(ex.ToString()); 
      } 
      finally 
      { 
       oleConn.Close(); 
      } 
      if (dataSet.Tables.Count <= 0) 
       return null; 
      else 
       return dataSet; 
     } 
+0

如果您的问题得到解答,请不要忘记接受。 – 2013-03-03 08:51:51

回答

1

,因为使用的是Access,而不是单引号包裹的日期与#

SELECT [Order].[Order]Number, 
     (Customer.Title +SPACE(2)+ Customer.CustomerName) as [Customer Name], 
     Customer.CustomerEbayname, 
     Customer.EmailAddress, 
     Customer.PhoneNumber, 
     (Customer.Address1 + SPACE(2) + Customer.Address2 + SPACE(2)+ Customer.City + SPACE(2) + Customer.PostCode + SPACE(2) + Customer.Country) as Address, 
     [Order].ItemPurchased, 
     [Order].PurchasedDate, 
     [Order].TotalPrice 
FROM Customer 
     INNER JOIN [Order] 
      ON Customer.[CustomerID] = [Order].[CustomerID] 
WHERE [PurchasedDate]= #" + date + "# 
+0

谢谢你的作品,以及如果我想在两个日期之间搜索.. – 2013-03-03 08:46:36

+0

使用'BETWEEN'例如'WHERE [PurchasedDate] BETWEEN#date1#AND#date2#' – 2013-03-03 08:47:16

+0

它不适用于日期 – 2013-03-03 08:59:35