我已经在网上搜索了几个小时以找到解决此问题的方法。我使用 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/