2012-11-20 26 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); 
} 
相关问题