ASP.NET MVC отображать записи на основе столбца - PullRequest
0 голосов
/ 13 октября 2019

в основном. У меня есть таблица (singleview), которая содержит несколько записей с похожим номером телефона. Когда я ищу записи по номеру телефона, я могу получить все записи. Тем не менее, я хотел бы сгруппировать их в одну запись после этого, чтобы иметь возможность «Просмотреть детали», которая будет отображать все остальное. Ниже приведен код:

public class DisplayData
{
    public List<MemberViewModel> Search(List<string> keywords)
    {
        StringBuilder sqlbuilder = new StringBuilder();
        sqlbuilder.Append("SELECT * FROM SingleView WHERE");
        foreach (string item in keywords)
        {
            sqlbuilder.AppendFormat("([Telephone] like '%{0}%' or [PolicyNo] like '%{0}%' or [PolicyType] like '%{0}%' or [InsurerName] like '%{0}%') and ", item);
        }

        string sql = sqlbuilder.ToString(0, sqlbuilder.Length - 5);

        return QueryList(sql);
    }

    protected List<MemberViewModel> QueryList(string cmdText)
    {
        List<MemberViewModel> ctn = new List<MemberViewModel>();

        SqlCommand cmd = GenerateSqlCommand(cmdText);
        using (cmd.Connection)
        {
            SqlDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())

                {
                    ctn.Add(ReadValue(reader));
                }
            }
        }

        return ctn;
    }

    protected SqlCommand GenerateSqlCommand(string cmdText)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["HQEntities"].ConnectionString);
        SqlCommand cmd = new SqlCommand(cmdText, con);
        cmd.Connection.Open();
        return cmd;
    }

    protected MemberViewModel ReadValue(SqlDataReader reader)
    {
        MemberViewModel obj = new MemberViewModel();

        obj.Client = (string)reader["Client"];
        obj.PolicyNo = (string)reader["PolicyNo"];
        obj.PolicyType = (short)reader["PolicyType"];
        obj.InsurerName = (string)reader["InsurerName"];
        obj.RenewalDate = (DateTime)reader["RenewalDate"];
        obj.Status = (string)reader["Status"];
        obj.Telephone = (string)reader["Telephone"];

        return obj;
    }

Страница просмотра

   @if (ViewBag.Message == true)
    {
        <label id="lblMessage" style="color: #6fcdcd;">Enter Phone Number</label>
    }
    else
    {
        if (Model != null)

        {

            if (Model.Count() != 0)

            {
                <div class="container">
                    <table id="example" class="table table-bordered table-hover table-responsive">
                        <thead class="thead-dark">
                            <tr>
                                <th>Client</th>
                                <th>Telephone</th>
                                <th>View Profile</th>
                            </tr>
                        </thead>
                        @foreach (var item in Model)
                        {
                            <tr>
                                <td>@item.Client</td>
                                <td>@item.Telephone</td>
                            </tr>
                        }
                    </table>
                </div>
            }
            else
            {
                <label id="lblErrorMsg" style="color:red;text-align:center;">Record not found...!</label>
            }
        }
    }
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...