2012-11-20 29 views
2

嗨即時嘗試從兩個日期之間的Excel中選擇數據。我有點卡住了,因爲Excel中的數據只是文本類型。我如何查詢這個?使用C查詢兩個日期之間的Excel列

string Date = DateTime.Now.AddDays(7).ToString("dd/MM/yyyy HH:mm"); 

string Date2 = DateTime.Now.ToString("dd/MM/yyyy HH:mm"); 

MyCommand = new System.Data.OleDb.OleDbDataAdapter("select [Req Start Date] from [CR$]", BETWEEN Date and Date2 ? MyConnection); 

回答

1

您可以通過使用標準的SQL語法兩個日期之間的查詢,但你需要指定的日期作爲日期參數的OleDbDataAdapter的。否則,它會將日期視爲文本,並且不會得到正確的匹配。

DataSet ds = new DataSet(); 

using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(SQL, conn)) 
{ 
    // Format the dates as dd/mm/yyyy 

    string date1 = DateTime.Now.AddDays(7).ToString("dd/MM/yyyy"); 
    string date2 = DateTime.Now.ToString("dd/MM/yyyy"); 

    // Set up the SQL with the two date paramters 

    string SQL = "SELECT [Req Start Date] FROM [CR$] WHERE [Req Start Date] BETWEEN ? AND ?"; 

    // Assign the two dates 

    dataAdapter.SelectCommand.Parameters.Add("@p1", OleDbType.Date).Value = date1; 
    dataAdapter.SelectCommand.Parameters.Add("@p2", OleDbType.Date).Value = date2; 

    // Run the query 

    dataAdapter.Fill(ds); 
} 
相關問題