-1

我只是在用 c# 学习 asp.net。由于对 php 知之甚少,我想我可以做一些事情,但我在显示我的数据库中的记录时遇到了问题。

我有一个名为资源的表,我想做的是输出表中的所有数据。这是我想在 php 中用 c# 编写的输出...

<?php
while($row = mysql_fetch_object($tablename))
{
   echo "<tr><td>$row->image</td><td><a href='#'>download link</a></td><a href='http://'".$row->url."'>'".$row->url."'</a></tr>";
}
?>

基本上我的 php 没有问题,但我希望这段代码在 C# 中给出相同的输出(在表格中包含图像、下载链接和 url)。请帮忙,...

我在 c# 中有这段代码可以在标签控件中输出数据

var cmd = new MySqlCommand("SELECT * FROM resources");
Knct dal = new Knct();
MySqlDataReader dr = dal.DatareaderMethod(cmd, Knct.executemethods.ExecuteReader);
while (dr.Read())
{
  label1.Text = dr[2].ToString();
}

while 循环不起作用,它只显示一个值。我如何使它显示数据库中的所有记录以及我可以使用哪个 asp 控件来输出记录并在表输出中创建一个 url 链接。

4

3 回答 3

1

如果您使用的是 ASP.Net,则首选中继器用于简单的显示。

在您背后(或服务器端)的代码中,您必须将数据绑定到转发器:

   ...
   m_Repeater.DataSource = GetImages();  //Function that returns Image records
   m_Repeater.DataBind();
   ...

ASPX 页面上的标记将类似于:

<asp:Repeater id="m_Repeater" runat="server">
  <HeaderTemplate>
    <table>
      <tr>
        <td>Image</td>
        <td>Link</td>
        <td>Url</td>
      </tr>
  </HeaderTemplate>
  <ItemTemplate>
      <tr>
        <td><img src='<%# Container.DataItem("ImageSrc") %>'/></td>
        <td><a href='<%# Container.DataItem("DownloandLink") %>'>Download Link</a></td>
        <td><a href='<%# Container.DataItem("ImageUrl") %>'>Url</a></td>
      </tr>
  </ItemTemplate>
  <FooterTemplate>
     </table>
  </FooterTemplate>
</asp:Repeater>

ASP.Net MVC

如果您使用的是 ASP.Net MVC,则可以使用 Razor 语法,它更优雅。假设Model对可枚举的Image对象列表进行强类型化,则视图页面上的标记可能类似于:

@foreach(var image in Model)
{
   <tr>
     <td><img src='@image.ImageSrc'/></td>
     <td><a href='@image.DownloadLink'>Download Link</a></td>
     <td><a href='@image.ImageUrl'>Url</a></td>
   </tr>
}

一些有用的文章/资源:

于 2012-10-17T02:03:24.330 回答
1

如果这是网络表单,您可以使用转发器来显示您的每个值。它看起来像这样:

aspx:
<asp:Repeater ID="repeater" runat="server">
    <ItemTemplate>
        <div><%# Eval("columnName")%></div>
    </ItemTemplate>
</asp:Repeater>

aspx.cs:
repeater.DataSource = dr;
repeater.DataBind();

把它想象成一个for循环。

于 2012-10-17T02:03:54.187 回答
1

像这样使用

<asp:GridView ID="grdPivot" runat="server" AutoGenerateColumns="True">
</asp:GridView>


<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MySql %>" ProviderName="<%$ ConnectionStrings:MySql.ProviderName %>" SelectCommand="SELECT * FROM resources"></asp:SqlDataSource>

这是将数据绑定到 gridview 或任何其他数据控件的最简单方法。

于 2012-10-17T05:36:57.097 回答