【发布时间】:2016-11-26 22:08:17
【问题描述】:
我正在尝试在数据库中捕获两个日期之间的数据。
当我尝试在 SQL Server Management Studio 中执行此查询时,它工作正常。
SELECT
cha_tarihi
FROM
CARI_HESAP_HAREKETLERI
WHERE
ha_tarihi BETWEEN '2016-02-10' AND '2016-10-10';
但是当我想在我的 C# 项目中尝试时,它不起作用,没有从数据库返回任何数据。
我正在尝试大约两个小时,请帮助解决什么问题?
在我的 C# 项目中查询
var editeddate = DateTime.ParseExact(
dateEdit1.EditValue.ToString(),
"d.M.yyyy hh:mm:ss", CultureInfo.InvariantCulture
);
var editeddate2 = DateTime.ParseExact(
dateEdit2.EditValue.ToString(),
"d.M.yyyy hh:mm:ss", CultureInfo.InvariantCulture
);
query.Sql =
@"select cha_tarihi from CARI_HESAP_HAREKETLERI where cha_tarihi between '" +
editeddate.ToString( "yyyy-MM-dd" ) +
"' AND '" +
editeddate2.ToString("yyyy-MM-dd") +
"'";
【问题讨论】:
-
停止这样构建你的 SQL。请改用参数化查询。这可能是问题,也可能不是问题,但这绝对是首先要做的事情。
-
关键字
SQL Injection -
为什么要格式化两次日期?不太确定结果会是什么。查看editeddate中的内容(已经是一个字符串).toString("yyyy-MM-dd")。
-
Devexpress datetime 返回另一种格式 ddont 从查询中接受因为这个我尝试解析,它们是不同的日期第一个开始日期第二个结束日期
-
我认为答案很简单,
editeddate和editeddate2不包含您认为它们包含的值。
标签: c# sql-server datetime