0
 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 時間を無駄にしました。誰かがこの状況で私を助けてくれることを願っています。. 喜んで手伝ってくれる人に感謝します。. とても感謝しています:) KUDOS !!

4

2 に答える 2

3

エラーが示すように、単一のオブジェクトをリストに割り当てようとしています。

 currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
                                           || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));

結果が 1 つしかない場合は、SingleOrDefault() を使用する必要があります。複数のレコードがある場合は、結果セットから最初のレコードを抽出する FirstOrDefault() を使用します。

instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
                                               || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper())).FirstOrDefault();
于 2013-05-14T03:22:12.293 に答える
2

おそらく、リストの最初の応募者が必要です。

currentInstructor = instructors
    .AsQueryable()
    .Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper()) || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()))
    .FirstOrDefault();
于 2013-05-14T03:22:28.910 に答える