0

我有一个问题:我正在制作一个带有数据库连接(访问数据库)的日历应用程序。有了这个应用程序,人们可以添加约会,如果他们按下某个日期(例如 3 月 24 日),就可以查看他们的约会。但现在显示了数据库的所有信息,这不是我想要的。我想显示用户单击的按钮(日期)的约会,而不是数据库的所有操作。

private void button2_Click(object sender, EventArgs e)
        {
            string selectie = " SELECT * FROM Appointment Order by AppointmentDate ";
            OleDbConnection calendarconn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;data source=C:\Users\derek\Dropbox\C#_Project_Calender\Versie 1.0\Kalenderdb.accdb");
            if (calendarconn != null)
            {
                Debug.WriteLine("calendarconn is not null: " + calendarconn);
                calendarconn.Open();
                OleDbCommand cmd = new OleDbCommand(selectie, calendarconn);
                OleDbDataReader reader = cmd.ExecuteReader();


                DataTable dt = new DataTable();

                dt.Load(reader);

                // achter je grid 
                this.dataGridView1.DataSourc
4

2 回答 2

0

首先,您可以使用日期时间选择器的“ValueChanged”事件。
当用户从日历中选择日期时。然后这个事件将被触发。

您在此处编写代码并更新查询,如下所示:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
    string selectie = " SELECT * FROM Appointment where AppointmentDate like '"+dateTimePicker1.Value.ToShortDateString()+"'  Order by AppointmentDate ";
}

您还可以更改日期的格式,如下所示。

dateTimePicker1.Value.ToString("yyyyMMdd");

2013 年 3 月 27 日将显示为 20130327

于 2013-03-27T11:41:01.903 回答
0

改写您的选择语句以过滤:

"SELECT * FROM Appointment WHERE AppointmentDate = @AppointmentDate"

然后向您的 OleDbCommand 对象添加一个参数:

cmd.Parameters.AddWithValue("@AppointmentDate", DateTime.Today);

于 2013-03-27T11:33:24.363 回答