-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ループは機能していませんが、表示される値は1つだけです。これをデータベース内のすべてのレコードを表示する方法と、レコードを出力するために使用できる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

これが Web フォームの場合、リピーターを使用して各値を表示できます。次のようになります。

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 に答える