Member 9983063 Ответов: 3

Как выбрать данные из базы данных ms access в C# по сегодняшней дате


Hello Guys! i want to know how to select data from ms access database in c# from today date i can select data from database between date but when i select today date and  get data it;s show me blank. so please help me.Here is my Code!

private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "Today Report")
            {
                DataSet dsa = new DataSet();
                DataTable dt = new DataTable();
                dsa.Tables.Add(dt);
                OleDbDataAdapter da = new OleDbDataAdapter();
                da = new OleDbDataAdapter("SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] = #" + dateTimePicker1.Value.ToString() + "#", VCON);
                da.Fill(dt);
                CrystalReport4 MYREPORT = new CrystalReport4();
                MYREPORT.SetDataSource(dt);
                crystalReportViewer1.ReportSource = MYREPORT;
                VCON.Close();
            }
            else if (textBox1.Text == "Custom Report")
            {
                DataSet dsa = new DataSet();
                DataTable dt = new DataTable();
                dsa.Tables.Add(dt);
                OleDbDataAdapter da = new OleDbDataAdapter();
                da = new OleDbDataAdapter("SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] between #" + dateTimePicker2.Value.ToString() + "# AND #" + dateTimePicker3.Value.ToString() + "#", VCON);
                da.Fill(dt);
                CrystalReport4 MYREPORT = new CrystalReport4();
                MYREPORT.SetDataSource(dt);
                crystalReportViewer1.ReportSource = MYREPORT;
                VCON.Close();
            }
            else
            {
                MessageBox.Show("Sorry! File was not Found:Please Try Again", "Daily Report", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }



Что я уже пробовал:

Hello Guys! i want to know how to select data from ms access database in c# from today date i can select data from database between date but when i select today date and  get data it;s show me blank. so please help me.Here is my Code!

private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "Today Report")
            {
                DataSet dsa = new DataSet();
                DataTable dt = new DataTable();
                dsa.Tables.Add(dt);
                OleDbDataAdapter da = new OleDbDataAdapter();
                da = new OleDbDataAdapter("SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] = #" + dateTimePicker1.Value.ToString() + "#", VCON);
                da.Fill(dt);
                CrystalReport4 MYREPORT = new CrystalReport4();
                MYREPORT.SetDataSource(dt);
                crystalReportViewer1.ReportSource = MYREPORT;
                VCON.Close();
            }
            else if (textBox1.Text == "Custom Report")
            {
                DataSet dsa = new DataSet();
                DataTable dt = new DataTable();
                dsa.Tables.Add(dt);
                OleDbDataAdapter da = new OleDbDataAdapter();
                da = new OleDbDataAdapter("SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] between #" + dateTimePicker2.Value.ToString() + "# AND #" + dateTimePicker3.Value.ToString() + "#", VCON);
                da.Fill(dt);
                CrystalReport4 MYREPORT = new CrystalReport4();
                MYREPORT.SetDataSource(dt);
                crystalReportViewer1.ReportSource = MYREPORT;
                VCON.Close();
            }
            else
            {
                MessageBox.Show("Sorry! File was not Found:Please Try Again", "Daily Report", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


3 Ответов

Рейтинг:
2

Dave Kreskowiak

Google для "C# Access database SQL parameterized queries", чтобы узнать, почему то, что вы делаете, так плохо и что с этим делать.

Вы можете узнать больше, погуглив "атаку SQL-инъекций".


Gustav Brock

Хотя ваш комментарий верен, это не ответ.

Dave Kreskowiak

Да, это так. Я предпочитаю указывать в правильном направлении, а не просто давать ответ там, где ОП понятия не имел, как к нему добраться.

Как давно ты снова здесь?

Gustav Brock

Опять?
Каждый может бросить ссылку, и у вопрошающего наверняка есть идея, только он упускает последнюю деталь.

Рейтинг:
2

BillWoodruff

"

Цитата:
я могу выбирать данные из базы данных между датами
Таким образом, вы можете заново определить свою цель как выбор данных на основе полуночи текущего дня до полуночи следующего дня:
private TimeSpan private TimeSpan OneTick = TimeSpan.FromTicks(1L);
             
public DateTime StartOfToday()
{
    return DateTime.Today;
}

public DateTime EndOfToday()
{
    return DateTime.Today.AddDays(1).Subtract(OneTick);
}


Рейтинг:
0

Gustav Brock

Вам может понадобиться правильный формат для строковых выражений значений даты:

" .. 
Where [Date] Between #" + dateTimePicker2.Value.ToString("yyyy'/'MM'/'dd") + "# And #" + dateTimePicker3.Value.ToString("yyyy'/'MM'/'dd") + "#", ..


Dave Kreskowiak

Этот ответ только усугубляет проблему и открывает его базу данных для атак SQL-инъекций и возможности полной потери базы данных. Может быть, вам стоит посмотреть на то, что я написал выше.

Gustav Brock

Я не спорю с вами, но иногда простой вопрос требует простого ответа.
Просто любопытно, но как бы вы ввели элемент управления DateTimePicker? Или, скорее: заставить его возвращать что-либо, кроме значения DateTime?