-1
public void LoadAttendance()
{
    DataAdapter = new OleDbDataAdapter("SELECT * FROM AttendanceDatabase where EmpName = '" + txtEmpName.Text + "'", con);
    DataTable = new DataTable();
    DataAdapter.Fill(DataTable);
    dgvAttendance.DataSource = DataTable;
    dgvAttendance.Columns[1].DefaultCellStyle.Format = "h:mm tt";
    dgvAttendance.Columns[2].DefaultCellStyle.Format = "h:mm tt";
}

I want to search a record in between two dates and Employee Name. Can someone help me about the query? public void FillPresentDays() {

      Public void FillPresentDays
      {
        con.Open();
        cmd = new OleDbCommand("Select COUNT(*) from AttendanceDatabase  WHERE EmpName =@EmpName and Date between @d1 and @d2", con);
        cmd.Parameters.AddWithValue("@EmpName", txtEmpName.Text);
        cmd.Parameters.AddWithValue("@d1", dtDate1.Value.Date);
        cmd.Parameters.AddWithValue("@d2", dtDate2.Value.Date);
        cmd.ExecuteNonQuery();
        int count = (int)cmd.ExecuteScalar();
        txtPdays.Text = count.ToString();
        con.Close();
        LoadAttendance();

    }

this code is working the datetimepicker used here is the same that i will used in the LoadAttendance.

nethken
  • 1,072
  • 7
  • 24
  • 40

3 Answers3

2
public void LoadAttendance()
{
    DateTime fromdt = DateTime.ParseExact("1/1/2009", "M/d/yyyy", new CultureInfo("en-US"));
    DateTime todt = DateTime.ParseExact("1/1/2010", "M/d/yyyy", new CultureInfo("en-US"));
    DataAdapter = new OleDbDataAdapter("SELECT * FROM AttendanceDatabase where EmpName = '" + txtEmpName.Text + "' AND (DateField BETWEEN '" + fromdt +"' AND '" + todt + "') ", con);
    DataTable = new DataTable();
    DataAdapter.Fill(DataTable);
    dgvAttendance.DataSource = DataTable;
    dgvAttendance.Columns[1].DefaultCellStyle.Format = "h:mm tt";
    dgvAttendance.Columns[2].DefaultCellStyle.Format = "h:mm tt";
}

Use your datetime format instead 'm/d/yyyy'.

If its not work. try

DateField >= @fromdt AND DateField < @todt

0

Try this

SELECT * FROM AttendanceDatabase 
WHERE EmpName = '" + txtEmpName.Text + "' 
AND 
(DateField BETWEEN '" + DateTime.Parse(StartDate) + "' 
    AND '" + DateTime.Parse(EndDate) + "')"
Shweta Pathak
  • 775
  • 1
  • 5
  • 21
0
public void LoadAttendance()
    {
        con.Open();
        cmd = new OleDbCommand("Select * from AttendanceDatabase WHERE EmpName = @EmpName and Date between @d1 and @d2", con);
        cmd.Parameters.AddWithValue("@EmpName", txtEmpName.Text);
        cmd.Parameters.AddWithValue("@d1", dtDate1.Value.Date);
        cmd.Parameters.AddWithValue("@d2", dtDate2.Value.Date);
        DataAdapter = new OleDbDataAdapter(cmd);
        DataTable = new DataTable();
        DataAdapter.Fill(DataTable);
        dgvAttendance.DataSource = DataTable;
        con.Close();
    }

here how i solved lol.

nethken
  • 1,072
  • 7
  • 24
  • 40