public ViewResult Index(string currentFilter, string searchString, int? page)
{
if (Request.HttpMethod == "GET")
{
searchString = currentFilter;
}
else
{
page = 1;
}
ViewBag.CurrentFilter = searchString;
var connString = ConfigurationManager.ConnectionStrings["ApplicantDB"].ConnectionString;
List<Applicant> instructors = new List<Applicant>();
using (var conn = new SqlConnection(connString))
{
conn.Open();
var query = new SqlCommand("SELECT TOP 50 APPLICANT_ID, APPLICANT_Lastname, APPLICANT_FirstName, APPLICANT_MiddleName, APPLICANT_Address, APPLICANT_City"+
" FROM APPLICANT", conn);
var reader = query.ExecuteReader();
int currentPersonID = 0;
Applicant currentInstructor = null;
while (reader.Read())
{
var personID = Convert.ToInt32(reader["APPLICANT_ID"]);
if (personID != currentPersonID)
{
currentPersonID = personID;
if (currentInstructor != null)
{
instructors.Add(currentInstructor);
}
currentInstructor = new Applicant();
currentInstructor.APPLICANT_ID = Convert.ToInt32(reader["APPLICANT_ID"].ToString());
currentInstructor.APPLICANT_Lastname = reader["APPLICANT_Lastname"].ToString();
currentInstructor.APPLICANT_FirstName = reader["APPLICANT_FirstName"].ToString();
currentInstructor.APPLICANT_MiddleName = reader["APPLICANT_MiddleName"].ToString();
currentInstructor.APPLICANT_Address = reader["APPLICANT_Address"].ToString();
currentInstructor.APPLICANT_City = reader["APPLICANT_City"].ToString();
}
if (!String.IsNullOrEmpty(searchString))
{
currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
|| s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));
}
}
if (currentInstructor != null)
{
instructors.Add(currentInstructor);
}
reader.Close();
conn.Close();
}
int pageSize = 10;
int pageNumber = (page ?? 0);
return View(instructors.ToPagedList(pageNumber, pageSize));
}
本行错误
if (!String.IsNullOrEmpty(searchString))
{
currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
|| s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));
}
这是我第一次遇到这种错误。我在这种错误上浪费了将近2个小时在这种情况下,我希望有人能帮助我。提前感谢那些愿意帮助我的人。非常感谢:)太棒了!
错误提示,您试图将单个对象赋值给list。
currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
|| s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));
如果只能有一个结果,你需要使用SingleOrDefault(),如果有多条记录,使用FirstOrDefault()从结果集中提取第一条记录。
instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
|| s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper())).FirstOrDefault();
您可能需要列表中的第一个申请人。
currentInstructor = instructors
.AsQueryable()
.Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper()) || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()))
.FirstOrDefault();