в основном. У меня есть таблица (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>