2017-07-15 6 views
1
anzuzeigen

Ich muss das heutige Datum mit Daten in Excel vergleichen, so dass es alle Daten anzeigt, die heute in DataGridView eingegeben werden. Ich habe viele Code-Iterationen ausprobiert, aber weiterhin Fehler empfangen, und einige zeigen das erforderliche Ergebnis nicht an. Hier ist der Code:So vergleichen Sie das heutige Datum mit dem Datum der Excel-Spalte, um die heute eingegebenen Daten in C#

private void todayToolStripMenuItem_Click(object sender, EventArgs e) 
    { 

     int day = todaysDate.Day ; 
     int month =todaysDate.Month; 
     MessageBox.Show("Month" + month+ "Date" + day, "abc", MessageBoxButtons.OK); 
     int year = todaysDate.Year; 

     String name = "Sheet1"; 
     OleDbConnection con = new OleDbConnection(constr); 
     OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$] WHERE Date CONTAINS " + day + "AND Date CONTAINS " + month + 
      "AND Date CONTAINS " + year, con); 

     try 
     { 
      con.Open(); 
     } 
     catch (Exception) 
     { 

     } 

     OleDbDataAdapter sda = new OleDbDataAdapter(oconn); 
     DataTable data = new DataTable(); 
     sda.Fill(data); 
     dataGridView1.DataSource = data; 
    } 

Vielen Dank im Voraus.

Antwort

0

AKTUALISIERT Verwenden Sie die Abfrage mit Parametern, anstatt den Wert in die Zeichenfolge einzugeben. Dies funktioniert gut für mich:

OleDbCommand oconn = new OleDbCommand("Select * From [Sheet1$] WHERE Date = @date"); 
oconn.Connection = connection; 
try 
{ 
    oconn.Parameters.AddWithValue("@date", DateTime.Now.ToString("MM/dd/yyyy")); 
    connection.Open(); 
    OleDbDataAdapter sda = new OleDbDataAdapter(oconn); 
    DataTable data = new DataTable(); 
    sda.Fill(data); 
    connection.Close(); 
} 
catch (Exception) 
{ 

} 
+0

Sein geben Fehler "Mismatch Datentyp in Kriterienausdruck – Tasneem

+0

Es ist in diesem Format tt/mm/yyy – Tasneem

+0

gespeichert Es gleiche Fehler geben – Tasneem

Verwandte Themen