linq动态查询时如何从数据库中动态获取日期的某一部分
linq动态查询时怎么从数据库中动态获取日期的某一部分
我用三个DropDownList分别代表年月日,下拉菜单已经做好日期,然后我想选择符合条件的日期,可是代码显示有错误。
代码
if (ddlYear1.SelectedIndex != 0)
qu = qu.Where(c => c.时间.Year.ToString() == ddlYear1.SelectedValue);
if (ddlMonth1.SelectedIndex != 0)
qu = qu.Where(c => c.时间.Month.ToString() == ddlMonth1.SelectedValue);
if (ddlDay1.SelectedIndex != 0)
qu = qu.Where(c => c.时间.Day.ToString() == ddlDay1.SelectedValue);
错误
10 “System.Nullable<System.DateTime>”不包含“Year”的定义,并且找不到可接受类型为“System.Nullable<System.DateTime>”的第一个参数的扩展方法“Year”(是否缺少 using 指令或程序集引用?)
------解决思路----------------------
亲,你的写法明显错了啊!应该这样:
DateTime time;
time.Year= ddlYear1.SelectedIndex != 0 ?int.Parse(ddlYear1.SelectedIndex):1900;
time.Month = ddlMonth1.SelectedIndex != 0 ? int.Parse(ddlMonth1.SelectedIndex):1;
time.Day=ddlDay1.SelectedIndex != 0 ? int.Parse(ddlDay1.SelectedIndex):1;;
qu = qu.Where(c => c.时间 == time);
------解决思路----------------------
我用三个DropDownList分别代表年月日,下拉菜单已经做好日期,然后我想选择符合条件的日期,可是代码显示有错误。
代码
if (ddlYear1.SelectedIndex != 0)
qu = qu.Where(c => c.时间.Year.ToString() == ddlYear1.SelectedValue);
if (ddlMonth1.SelectedIndex != 0)
qu = qu.Where(c => c.时间.Month.ToString() == ddlMonth1.SelectedValue);
if (ddlDay1.SelectedIndex != 0)
qu = qu.Where(c => c.时间.Day.ToString() == ddlDay1.SelectedValue);
错误
10 “System.Nullable<System.DateTime>”不包含“Year”的定义,并且找不到可接受类型为“System.Nullable<System.DateTime>”的第一个参数的扩展方法“Year”(是否缺少 using 指令或程序集引用?)
------解决思路----------------------
亲,你的写法明显错了啊!应该这样:
DateTime time;
time.Year= ddlYear1.SelectedIndex != 0 ?int.Parse(ddlYear1.SelectedIndex):1900;
time.Month = ddlMonth1.SelectedIndex != 0 ? int.Parse(ddlMonth1.SelectedIndex):1;
time.Day=ddlDay1.SelectedIndex != 0 ? int.Parse(ddlDay1.SelectedIndex):1;;
qu = qu.Where(c => c.时间 == time);
------解决思路----------------------
if (ddlYear1.SelectedIndex != 0)
{
int year= int.Parse(ddlYear1.SelectedValue);
qu = qu.Where(c =>c.时间.HasVaule && c.时间.Value == year);
}