如何在 html 表中显示存储过程输出

本文关键字:显示 存储过程 输出 html | 更新日期: 2023-09-27 17:56:23

我想在HTML表中显示存储过程的输出。我知道如何在网格视图中显示,但我不知道如何在 HTML 表中显示。任何人都可以建议我或为我提供示例代码,以便我从中学习。我已经搜索并试图解决。我想从创建的 HTML 表中创建图形。

如何在 html 表中显示存储过程输出

首先,您必须创建一个 ViewModel 来显示要在视图上列出的信息。像这样:

public class ProductViewModel 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    /* other properties you need */
}

在控制器中,您可以访问数据库并创建一个列表,并将其返回到 html 输出中显示的视图。我建议您创建一个数据访问层,而不是直接在控制器中使用 Ado.Net。

public ActionResult Index()
{
    var model = new List<ProductViewModel>();
    // create a connection
    SqlConnection con = new SqlConnection("your_connection_string");    
    try 
    {
        // open the conneciton
        con.Open();
        // prepare a command
        SqlCommand command = new SqlCommand("You_Stored_Procedure_Name",con);   
        command.CommandType = CommandType.StoredProcedure;
        // add parameters if you need
        // command.Parameters.AddWithValue("ParameterName", value);
        // execute a reader with the command
        using (var reader = command.ExecuteReader())
        {
            // loop in the result and fill the list
            while (reader.Read())
            {
                // add items in the list
                model.Add(new ProductViewModel() 
                        {
                            Id = (int)reader["Id"],
                            Name = reader["Name"].ToString(),
                            Price = (decimal)reader["Price"]
                            // other properties
                        });
            }
        }       
    }
    catch 
    {
    }
    finally 
    {   
        con.Close();
    }
    return View(model);
}

在您的视图中,您可以使用IEnumrable<ProductViewModel>键入它并将其列在 HTML 表或您需要的任何 HTML 结构中,如下所示:

@model IEnumerable<ProductViewModel>
<table>
    <tr>
        <th>Name</th>
        <th>Price</th>      
    </tr>
    @foreach(var item in Model)
    {
        <tr>
            <td>@item.Name</td>
            <td>@item.Price.ToString("C2")</td>
        </tr>
    }
</table>

我认为...您可以调用 SP 并在.CS页面上获取数据...

现在你必须做一件事..将该 Datareader 存储在任何列表中。并应用 linq 查询,以便您可以根据 requirement.store 获取记录,该记录在单独的变量上。

请参阅示例:

 MainHTML = MainHTML + "<div class=" + "HideDivClass" + " id=" + TMid + "><table width=" + "180" + " cellspacing=" + "1" + " cellpadding=" + "2" + " align=" + "left" + "><tbody><tr><td style=" + "text-align:center;font-size:13px" + "align=" + "center" + " colspan=" + "2" + "><b>" + TransModeName + "</b></td></tr><tr><td class=" + "DetailsFontSize" + ">Last 7 days</td><td  class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualCharge7Days + "</td></tr><tr></tr><tr><td class=" + "DetailsFontSize" + ">Last 30 days</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualCharge30Days + "</td></tr><tr><td class=" + "DetailsFontSize" + ">This Year</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualChargeThisYear + "</td></tr><tr><td class=" + "DetailsFontSize" + ">Total</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualChargeTotal + "</td></tr><tr><td class=" + "DetailsFontSize" + ">Avg/Shipment</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + AvgShip.ToString("#.####") + "</td></tr><tr><td class=" + "DetailsFontSize" + "align=" + "center" + " colspan=" + "2" + "></td></tr></tbody></table></div>";

在这里,我将MainHTML作为字符串...并制作了一个字符串(HTML 布局/设计格式)并将此字符串绑定到标签。

label.text = MainHTML.tostring();您可以根据自己的喜好设置设计...