C# ASP.NET MVC基于列的显示记录

C# ASP.NET MVC基于列的显示记录,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,基本上。我有一个表(singleview),其中包含一些电话号码相似的记录。当我根据电话号码搜索记录时,我能够检索所有记录。但是,我想将它们分组到一个记录中,然后可以“查看详细信息”,显示所有其余的内容。 代码如下: public class DisplayData { public List<MemberViewModel> Search(List<string> keywords) { StringBuilder sqlbuilder

基本上。我有一个表(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;
    }
公共类显示数据
{
公共列表搜索(列表关键字)
{
StringBuilder sqlbuilder=新的StringBuilder();
Append(“从SingleView中选择*”;
foreach(关键字中的字符串项)
{
AppendFormat(([Telephone]像“{0}%”或[PolicyNo]像“{0}%”或[PolicyType]像“{0}%”或[InsureName]像“{0}%”和“,”项);
}
字符串sql=sqlbuilder.ToString(0,sqlbuilder.Length-5);
返回QueryList(sql);
}
受保护列表查询列表(字符串cmdText)
{
List ctn=新列表();
SqlCommand cmd=GenerateSqlCommand(cmdText);
使用(cmd.Connection)
{
SqlDataReader=cmd.ExecuteReader();
if(reader.HasRows)
{
while(reader.Read())
{
ctn.Add(ReadValue(reader));
}
}
}
返回ctn;
}
受保护的SqlCommand GenerateSqlCommand(字符串cmdText)
{
SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“HQEntities”].ConnectionString);
SqlCommand cmd=新的SqlCommand(cmdText,con);
cmd.Connection.Open();
返回cmd;
}
受保护的MemberViewModel ReadValue(SqlDataReader)
{
MemberViewModel obj=新的MemberViewModel();
obj.Client=(字符串)读取器[“Client”];
obj.PolicyNo=(字符串)读取器[“PolicyNo”];
obj.PolicyType=(短)读卡器[“PolicyType”];
obj.InsurerName=(字符串)读取器[“InsurerName”];
obj.RenewalDate=(DateTime)读卡器[“RenewalDate”];
对象状态=(字符串)读取器[“状态”];
对象电话=(字符串)读卡器[“电话”];
返回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>
@if(ViewBag.Message==true)
{
输入电话号码
}
其他的
{
如果(型号!=null)
{
如果(Model.Count()!=0)
{
客户
电话
视图配置文件
@foreach(模型中的var项目)
{
@项目.客户
@项目.电话
}
}
其他的
{
找不到记录。。。!
}
}
}

同时基于电话号码搜索记录和显示记录?不。事实上。它几乎类似于脚手架提供的功能。包含记录的表格,单击特定记录时,应显示该记录的其他详细信息。确定您可以使用表格树结构