【发布时间】:2012-01-12 20:18:41
【问题描述】:
我必须根据所选条件实现搜索,我要根据搜索条件添加 where 子句,但我的查询总是返回代码的 else 语句,无法确定我哪里出错了,我的代码低于任何帮助非常感谢
DateTime myDate = System.DateTime.Now.Date;
if (ddlUpdateOptions.SelectedValue == "1")
{
myDate = System.DateTime.Now;
}
if (ddlUpdateOptions.SelectedValue == "7")
{
myDate = System.DateTime.Now.AddDays(-7);
}
if (ddlUpdateOptions.SelectedValue == "15")
{
myDate = System.DateTime.Now.AddDays(-15);
}
if (ddlUpdateOptions.SelectedValue == "30")
{
myDate = System.DateTime.Now.AddDays(-30);
}
if (ddlUpdateOptions.SelectedValue == "60")
{
myDate = System.DateTime.Now.AddDays(-60);
}
using (mydatacontext db = new mydatacontext ())
{
var query = from b in db.JobSeekers
join c in db.JobContents on b.industryId equals c.JobContentid
join d in db.JobSeekerBasicEducations on b.BasicEduID equals d.BasicEduId
join f in db.JobSeekerMasterEdus on b.MasterEduID equals f.MasterEduId
join g in db.JobSeekerDoctarateEdus on b.DoctorateEduID equals g.DoctarateEduId
orderby b.UpdatedDate descending
select new
{
b.regId,
b.CurrentLocation,
b.CurrentEmployer,
b.MobileNumber,
b.ExpYears,
b.ExpMonths,
TotalExperience = b.ExpYears,
b.profileHeadlines,
b.KeySkills,
b.DownloadResume,
b.industryId,
b.UpdatedDate,
b.BasicEduID,
b.MasterEduID,
b.DoctorateEduID,
};
if (txtKeyword.Text != "")
{
query = query.Where(c => c.KeySkills.Contains(txtKeyword.Text));
}
if (txtLocation.Text != "")
{
query = query.Where(c => c.CurrentLocation.Contains(txtLocation.Text));
}
if (ddlExperienceMax.SelectedValue != "-Select-")
{
query = query.Where(c => c.ExpYears <= Convert.ToInt32(ddlExperienceMax.SelectedValue));
}
//if (txtEmployer.Text != "")
//{
// query = query.Where(c => c.CurrentEmployer.Contains(txtEmployer.Text));
//}
if (ddlIndustry.SelectedValue != "-Select-")
{
query = query.Where(c => c.industryId == Convert.ToInt32(ddlIndustry.SelectedValue));
}
if (ddlUpdateOptions.SelectedValue != "")
{
query = query.Where(c => c.UpdatedDate.Date < myDate.Date);
}
if (ddlEducation.SelectedValue != "-Select-")
{
query = query.Where(c => c.BasicEduID == Convert.ToInt32(ddlEducation.SelectedValue));
}
if (ddlMasters.SelectedValue != "-Select-")
{
query = query.Where(c => c.MasterEduID == Convert.ToInt32(ddlMasters.SelectedValue));
}
if (ddlDoctorate.SelectedValue != "-Select-")
{
query = query.Where(c => c.DoctorateEduID == Convert.ToInt32(ddlDoctorate.SelectedValue));
}
if (chkWithResumes.Checked)
{
query = query.Where(c => c.DownloadResume != "");
}
if (query.Count() > 0)
{
lblMessage.Text = "Search Results";
gvSearchResults.DataSource = query;
gvSearchResults.DataBind();
}
else
{
lblMessage.Text = "Your Search Yielded 0 Results. Please Modify/Broden your Search.";
gvSearchResults.DataSource = "";
gvSearchResults.DataBind();
}
}
【问题讨论】:
-
您是否尝试过 SQL 跟踪以查看实际执行了什么?如果这是 LINQ-to-SQL,您只需设置 db.Log = Console.Out
-
我刚刚尝试过,但是console.out没有显示结果,比较日期时有什么问题
标签: c# asp.net linq dynamic where