c# - DateTimePicker 和 PostgreSQL 数据表搜索
问题描述
我正在尝试在两个日期之间使用 DateTimePicker 搜索 DataGridView,但我不确定这是否是正确的方法。这是我的代码:
private void btnsearch_Click(object sender, EventArgs e)
{
if (comboBox1.Text == "Document Date")
{
CRUD.cmd = new NpgsqlCommand("SELECT * FROM archive WHERE docdate BETWEEN '" + dtpFrom.Text + "' AND '" + dtpTo.Text + "'", CRUD.con);
NpgsqlDataAdapter da = new NpgsqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = CRUD.cmd;
dt.Clear();
da.Fill(dt);
grid.DataSource = dt;
}
}
我的 DateTimePicker 在设计器上显示时具有以下格式:27.11.2020。和往常一样,postgreSQL 表中的格式为 2020-11-27。这是我得到的错误:Npgsql.PostgresException: '22008: date/time field value out of range: "27.11.2020."' 我知道我必须更改格式但不完全确定如何更改做。有点愚蠢的问题,但我对 PostgreSQL 和 C# 真的很陌生,所以任何帮助都将不胜感激。
解决方案
使用此查询,这可能有效:
SELECT * FROM archive WHERE docdate::TIMESTAMP BETWEEN
(split_part('27.11.2020', '.',2)||'/'||split_part('27.11.2020', '.',1)||'/'||split_part('27.11.2020', '.',3))::TIMESTAMP
--'" + dtpFrom.Text + "'
AND
(split_part('27.11.2020', '.',2)||'/'||split_part('27.11.2020', '.',1)||'/'||split_part('27.11.2020', '.',3))::TIMESTAMP
--'" + dtpTo.Text + "'
//已编辑
复制粘贴以下代码:
private void btnsearch_Click(object sender, EventArgs e)
{
if (comboBox1.Text == "Document Date")
{
CRUD.cmd = new NpgsqlCommand("SELECT * FROM archive WHERE docdate::TIMESTAMP BETWEEN (split_part('" + dtpFrom.Text + "', '.',2)||'/'||split_part('" + dtpFrom.Text + "', '.',1)||'/'||split_part('" + dtpFrom.Text + "', '.',3))::TIMESTAMP AND (split_part('" + dtpTo.Text + "', '.',2)||'/'||split_part('" + dtpTo.Text + "', '.',1)||'/'||split_part('" + dtpTo.Text + "', '.',3))::TIMESTAMP", CRUD.con);
NpgsqlDataAdapter da = new NpgsqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = CRUD.cmd;
dt.Clear();
da.Fill(dt);
grid.DataSource = dt;
}
}
推荐阅读
- java - 使用 JPA 实现“反向”孤儿删除
- python - 如何使用模拟测试服务响应?
- google-analytics - 从 Google Analytics 中删除具有未定义事件类别的 gtm.js 事件操作
- javascript - 如何在 React Native 项目中集成原生 android app sdk
- swagger-ui - 应在 Swagger UI 中相应地标记已弃用的 API
- javascript - 如何运行一个函数来设置特定类型的所有 HTML 标签的高度?
- java - 到 Pojo 的 XML 映射器 - 只有子元素?
- javascript - 将excel公式转换为javascript代码
- javascript - 如何使用来自 REST API 的响应填充对象数组,其中每个对象内部都有一个数组?
- c# - 如何制作可在可查询对象中使用的可重用条件?