Я пытаюсь, чтобы это представление данных отображало только те записи дат, которые были выбраны пользователем с помощью datetimepicker
вот мой оригинальный код без указателя даты и времени
private void frmSaleReport_Load(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;User Id=;Password=;Data Source=TS-POS.accdb");
conn.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT InvoiceNo, DayDate, Gross, Net, Staff FROM GrossSales ORDER BY DayDate;", conn);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
dataGridView2.DataSource = ds.Tables[0];
dataGridView2.Columns["InvoiceNo"].HeaderText = "رقم الفاتورة";
dataGridView2.Columns["InvoiceNo"].Width = 150;
dataGridView2.Columns["DayDate"].HeaderText = " التاريخ";
dataGridView2.Columns["DayDate"].Width = 350;
dataGridView2.Columns["Gross"].HeaderText = "الإجمالي";
dataGridView2.Columns["Gross"].Width = 150;
dataGridView2.Columns["Net"].HeaderText = " الصافي";
dataGridView2.Columns["Net"].Width = 150;
dataGridView2.Columns["Staff"].HeaderText = " الموظف";
dataGridView2.Columns["Staff"].Width = 150;
conn.Close();
GrandTotal();
Qty();
}
private void Qty()
{
int sum = 0;
for (int i = 0; i < dataGridView2.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView2.Rows[i].Cells[0].Value);
}
textBox1.Text = sum.ToString();
}
private void GrandTotal()
{
int sum2 = 0;
for (int i = 0; i < dataGridView2.Rows.Count; ++i)
{
sum2 += Convert.ToInt32(dataGridView2.Rows[i].Cells[4].Value);
}
textBox3.Text = sum2.ToString();
}
Теперь, если япопробуйте добавить оператор where, он начинает выдавать ошибку в режиме отладки о несоответствии типов данных, как я могу заставить это работать?
вот ссылка, которую я использую для datetimepicker
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT InvoiceNo, DayDate, Gross, Net, Staff FROM GrossSales Where DayDate = '"dateFrom.Value"'ORDER BY DayDate;", conn);