2

こんにちは、2 つの日付の間の Excel からデータを選択しようとしています。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);
4

1 に答える 1

1

標準の SQL 構文を使用して 2 つの日付の間でクエリを実行できますが、日付を日付パラメーターとして 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);
}
于 2012-11-22T01:44:24.940 に答える