c# - 如何为每个 MySQL 获取的变量创建一个包含内容的面板

标签 c# mysql asp.net foreach reader

我已经在网上搜索了几个小时以找到解决此问题的方法。我使用 MySqlDataReader 从数据库中获取一些变量,我想创建一个 foreach 循环来为我拥有的每个 id 创建一个 HyperLink拿来了。在此 HyperLink 中,我需要根据每个 id 的等级设置一个 Image,一个用于名称的 Label 和另一个 Label 作为年级名称。

这是代码隐藏:

connString = ConfigurationManager.ConnectionStrings["ConnString"].ToString();
conn = new MySqlConnection(connString);
queryStr = "SELECT * FROM db.table WHERE account_id=?id LIMIT 5";
cmd = new MySqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("?id", IdKeeper.Value);
conn.Open();
reader = cmd.ExecuteReader();
reader.Read();
foreach (string "id fetched" in PanelID)
{
    //Stuck here!!!
}
reader.Close();
conn.Close();

最佳答案

您可以使用 Repeater在您的 aspx 页面上。

<asp:Repeater ID="Repeater1" runat="server">

    <HeaderTemplate>
        <table border="1">
    </HeaderTemplate>

    <ItemTemplate>
        <tr>
            <td>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("dbColumnName") %>'></asp:Label>: </td>
            <td>
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("dbColumnName") %>'>Click Me</asp:HyperLink></td>
        </tr>
    </ItemTemplate>

    <FooterTemplate></table></FooterTemplate>

</asp:Repeater>

然后在后面的代码中将数据直接绑定(bind)到 Repeater,而不需要 foreach 循环。

SqlDataReader reader = cmd.ExecuteReader()
Repeater1.DataSource = reader;
Repeater1.DataBind();

关于c# - 如何为每个 MySQL 获取的变量创建一个包含内容的面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40349577/

相关文章:

asp.net - 消息 "28000: no pg_hba.conf entry for host\"xx.xxx.xxx.xxxx\", user\"用户”,数据库\"databasename\",SSL 关闭”

asp.net - 解决 .net Web 应用程序中的可伸缩性和性能问题

c# - 帮助删除标签正则表达式

c# - 为什么我的事件总是空的,即使它被正确地添加到调用函数?

java - 在自定义 Unity Android 插件上调用非静态方法

c# - Google+ API plus.me

c# - 按钮 onClick 未绑定(bind)到 Activity 中的方法

php - session 注册不起作用

php - NULL 上的第三次连接不返回值(Codeigniter)

java - 运行 jdbc 程序时线程 "main"java.sql.SQLException 中出现异常?