将 dateTimePicker 中的日期保存到 ms access 数据库中并搜索两个日期之间的记录
Save Date from dateTimePicker into ms access database and search records between two dates
我有 MS 访问权限 table 'AddDate'。两列 'Id' -Autonumber,'AddDate' -DateTime.
在 VS 2015 中,我有一个表单,其中有一个 dateTimePicker 来插入日期值。
我使用以下查询来插入日期:
conn.Open();string str = "Insert into AddDate ([AddDate]) Values(@AddDate)";
OleDbCommand cmd = new OleDbCommand(str, conn);
cmd.Parameters.AddWithValue("@AddDate", dateTimePicker1.Value.ToShortDateString());
cmd.ExecuteScalar();
conn.Close();
当我输入记录时,我想在两个日期之间搜索这些记录。
为此,我有两个 datetimepicker,我使用以下代码进入数据网格视图:
OleDbDataAdapter odb = new OleDbDataAdapter("Select * from AddDate where AddDate Between '"+dateTimePicker1.Value.ToShortDateString() + "' and '"+ dateTimePicker2.Value.ToShortDateString() + "' ", conn);
DataTable dt = new DataTable();
odb.Fill(dt);
dataGridView1.DataSource = dt;
现在,如果 ms 访问 table AddDate 列设置为 DateTime,select 查询将给出错误 'Datatype Missmatch in criteria expression'。如果我将列 DataType 属性 更改为 ms access table 中的文本,则查询有效但它会收集两个日期之间 table 的所有记录,而不考虑月份。
请用示例和完整代码进行解释。还要在 MS Access 2010 中指定数据类型 属性。
提前致谢。
问候 Manoj Yadwad。
日期不是字符串,因此:
cmd.Parameters.AddWithValue("@AddDate", dateTimePicker1.Value);
但要连接,您必须将格式设置为有效的日期表达式:
OleDbDataAdapter odb = new OleDbDataAdapter("Select * from AddDate where AddDate Between #" + dateTimePicker1.Value.ToString("yyyy'/'MM'/'dd") + "# and #" + dateTimePicker2.Value.ToString("yyyy'/'MM'/'dd") + "#", conn);
最好在这里也使用参数。
我有 MS 访问权限 table 'AddDate'。两列 'Id' -Autonumber,'AddDate' -DateTime.
在 VS 2015 中,我有一个表单,其中有一个 dateTimePicker 来插入日期值。
我使用以下查询来插入日期:
conn.Open();string str = "Insert into AddDate ([AddDate]) Values(@AddDate)";
OleDbCommand cmd = new OleDbCommand(str, conn);
cmd.Parameters.AddWithValue("@AddDate", dateTimePicker1.Value.ToShortDateString());
cmd.ExecuteScalar();
conn.Close();
当我输入记录时,我想在两个日期之间搜索这些记录。 为此,我有两个 datetimepicker,我使用以下代码进入数据网格视图:
OleDbDataAdapter odb = new OleDbDataAdapter("Select * from AddDate where AddDate Between '"+dateTimePicker1.Value.ToShortDateString() + "' and '"+ dateTimePicker2.Value.ToShortDateString() + "' ", conn);
DataTable dt = new DataTable();
odb.Fill(dt);
dataGridView1.DataSource = dt;
现在,如果 ms 访问 table AddDate 列设置为 DateTime,select 查询将给出错误 'Datatype Missmatch in criteria expression'。如果我将列 DataType 属性 更改为 ms access table 中的文本,则查询有效但它会收集两个日期之间 table 的所有记录,而不考虑月份。
请用示例和完整代码进行解释。还要在 MS Access 2010 中指定数据类型 属性。
提前致谢。
问候 Manoj Yadwad。
日期不是字符串,因此:
cmd.Parameters.AddWithValue("@AddDate", dateTimePicker1.Value);
但要连接,您必须将格式设置为有效的日期表达式:
OleDbDataAdapter odb = new OleDbDataAdapter("Select * from AddDate where AddDate Between #" + dateTimePicker1.Value.ToString("yyyy'/'MM'/'dd") + "# and #" + dateTimePicker2.Value.ToString("yyyy'/'MM'/'dd") + "#", conn);
最好在这里也使用参数。