0
我被困在ObjectQuery類中,它總是給我錯誤,因爲 System.Data.Entity:參數類型'Edm.DateTime'和'Edm.String'與此操作不兼容。 WHERE謂詞實體sql日期時間字面量
請給我解決方案,我遵循上面的方法,但它沒有奏效。
我的代碼如下:
C#代碼:
var _dbModel = new VISAIntBPAEntities();
var serializer = new JavaScriptSerializer();
Filters f = (!_search || string.IsNullOrEmpty(filters)) ? null : serializer.Deserialize<Filters>(filters);
//if (f != null)
//{
// if (f.rules[0].field == "CreatedDate")
// {
// Convert.ToDateTime(f.rules[0].data).ToString();
// }
//}
ObjectQuery<Jobs> filteredQuery = (f == null ? _dbModel.Jobs : f.FilterObjectSet(_dbModel.Jobs));
//if (f != null)
//{
// if (f.rules[0].field == "CreatedDate")
// {
// filteredQuery.Parameters.Add(new ObjectParameter("CreatedDate", Convert.ToDateTime(f.rules[0].data)));
// }
//}
if (f != null)
{
DateTime dateTimeValue = Convert.ToDateTime(f.rules[0].data);
filteredQuery = filteredQuery.Where(string.Format("(it.CreatedDate = DATETIME'{0:yyyy-mm-dd hh:mm}')", dateTimeValue));
}
filteredQuery.MergeOption = MergeOption.NoTracking; // we don't want to update the data
var totalRecords = filteredQuery.Count();
Cleint端代碼:
這個代碼是在使用的jqGrid建成,其中有一個名爲CreatedDate列,填補了下拉列表中,我有一個SQL查詢,它從數據庫中獲取不同的日期部分。 我正在根據下拉菜單中的字符串日期選擇進行過濾。
{
name: 'CreatedDate', index: 'CreatedDate', width: 140, stype: 'select', async: false, sorttype: 'date',
edittype: 'select', editoptions: { value: getCreatedJobDate() }, editable: true, formatoptions: { newformat: 'm/d/Y' },
//editrules: { required: true },
searchoptions: {
value: getCreatedJobDate,
sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge', 'de']
}
}
請幫助我,因爲我堅持這種方法,我只需要這樣做。 在此先感謝。