我试图在数据库中的两个日期之间捕获数据。
当我尝试在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") +
"'";
答案 0 :(得分:1)
var sql = @"SELECT cha_tarihi
FROM CARI_HESAP_HAREKETLERI
WHERE cha_tarihi BETWEEN @startdate AND @enddate";
var command = new SqlCommand(sql, {your connection});
// You have EditValue.ToString() - what is the type of this value?
// You maybe be able to skip the DateTime.Parse
command.Parameters.Add("@startdate", SqlDbType.DateTime2)
.Value = DateTime.Parse(dateEdit1.EditValue)
.ToString("yyyy-MM-dd");
command.Parameters.Add("@enddate", SqlDbType.DateTime2)
.Value = DateTime.Parse(dateEdit2.EditValue)
.ToString("yyyy-MM-dd");