如何使用 c#asp.net 将数据库中的数据插入到表中?

Posted

技术标签:

【中文标题】如何使用 c#asp.net 将数据库中的数据插入到表中?【英文标题】:How to insert data from database into a table using c# asp.net? 【发布时间】:2021-08-15 15:01:27 【问题描述】:

我对 asp.net 和 c# 还很陌生,我已经连接到一个 SQL 数据库,现在我想将我拥有的数据显示到一个表中。

这是我的后端:

public string getWhileLoopData()

    string htmlStr = "";
    SqlConnection conn = new SqlConnection("Data Source = secret;Initial Catalog = GTI;Persist Security Info = True;Integrated Security = true;User ID = user;Password = pass;");
    conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM [CORE_SYS_STATUS]", conn);
    SqlDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    
        int ID = reader.GetInt32(0);
        int SYSTEM_NAME = reader.GetInt32(0);
        int SYSTEM_STATUS = reader.GetInt32(0);
        int SYSTEM_SHORTMSG = reader.GetInt32(0);

        htmlStr += "<tr><td>" + ID + "<tr><td>" + SYSTEM_NAME + "<tr><td>" + SYSTEM_STATUS + "<tr><td>" + SYSTEM_SHORTMSG;
    

    conn.Close();
    return htmlStr;

这是我的前端:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ContentPlaceHolder">

    <div class="bg-light text-center bg-light rounded border border-dark m-4">

        <div class="col-md-12">
            <h1 class="display-4 text-center p-4">Gestão de Alertas</h1>

            <table class="table table-bordered table-hover text-center p-4 border border-dark">
                <thead>
                    <tr class="table-success disabled">
                        <th style="width: 5%" scope="col">ID</th>
                        <th style="width: 20%" scope="col">Nome</th>
                        <th style="width: 15%" scope="col">Status</th>
                        <th style="width: 45%" scope="col">Mensagem</th>
                    </tr>
                </thead>
                <tbody>
                   <!-- I want to insert data here -->
                </tbody>
            </table>
        </div>
    </div>
</asp:Content>

结果如下: Result

它可能看起来很傻很简单,但我对这个编程很陌生,如果有人能帮助我弄清楚如何将我的数据插入到表中,我会很高兴。谢谢!

【问题讨论】:

我不知道如何添加 HTML 节点,但我可以给你一些其他的思考:不要在代码中嵌入连接字符串,把它放在一个设置文件中。如果Integrated Security = true 则忽略用户名和密码。连接、命令和阅读器对象应位于using 块中。不要select *,如果不需要,请指定您需要的确切列。 【参考方案1】:

有很多方法可以实现这一点。

我建议查看有关 DataBinding 的文档,例如:

Retrieving data in aspnet web-forms

GridView DataBind(看那里的样本)

此外,您应该查看有关 GetInt32 的文档: GetInt32 MSDN

参数是 select 语句中列的索引,你总是传递 0,这肯定不是你想要的。我还建议在 select 语句中明确命名您想要的列,而不是使用 select *。

【讨论】:

【参考方案2】:

对于快速解决方案,您可以将 &lt;%=getWhileLoopData()%&gt; 替换为 &lt;asp:Literal /&gt; 控件;在您的代码隐藏中,将其 Text 属性设置为 (getWhileLoopData)。

如果您是 ASP.NET 新手,学习 WebForms 数据绑定将需要一段时间,因为它有一些规则和特性需要您掌握。老实说,除非你必须在 WebForms 中构建这个东西,否则你应该开始学习 ASP.NET MVC,WebForms 是一种死技术。

【讨论】:

【参考方案3】:
<% HtmlString str = new HtmlString(getWhileLoopData()); %>
<%= str %>

【讨论】:

你能解释一下你的方法吗?

以上是关于如何使用 c#asp.net 将数据库中的数据插入到表中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery asp.net mvc 将多个数据插入到数据库中的 2 个表中

如何通过 ASP.net 网站将新条目插入 Access db 表?

在asp.net中如何对oracle数据库执行批量插入数据?

使用 c# asp.net 获取 XML 数据并插入到 sql server

如何遍历 MultiSelectList 发布的值并将每个值插入 ASP.Net MVC 5 中的新数据库行?

如何使用展开和折叠数据行的选项将页脚模板添加到 gridview?C#/ASP.NET