0

ニュースウェブサイトを構築する大学のプロジェクトがあります。私のホームページには、このURLを介してクエリ文字列を渡そうとしているリンクがいくつかあります。

<a href="Content.aspx?Id=2&NewsId=6">

MyContent.aspxファイル

<%@ Page Title="" Language="C#"  MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeFile="Content.aspx.cs" Inherits="Content" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            <%# Eval ("NewsDetails") %>
        </ItemTemplate>
    </asp:Repeater>
</asp:Content>

ファイルの背後にあるコード

public partial class Content : System.Web.UI.Page
{    
    protected void Page_Load(object sender, EventArgs e)
    {
        int _Id = Convert.ToInt32(Request.QueryString["Id"]);
        int _NewsDetails = Convert.ToInt32(Request.QueryString["NewsDetails"]);
        int _NewsId = Convert.ToInt32(Request.QueryString["NewsId"]);

        //open your database connection
        SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\MySite\\Pandheri\\App_Data\\Padheri.mdf;Integrated Security=True;User Instance=True");
        conn.Open();
        SqlCommand _cmd = new SqlCommand ("Select [NewsDetails],[Id] FROM Article",conn);
        DataSet ds = new DataSet();
        SqlDataAdapter adptr = new SqlDataAdapter(_cmd);
        adptr.Fill(ds);
        //close your database connection

        Repeater1.DataSource = ds;
        Repeater1.DataBind();

    }

ページを実行すると、NewsDetailsテーブルからすべてのデータを取得します。

私のデータベース。

{ニューステーブル

Id、NewsCategory

記事表

Id、NewsTitle、NewsDetails、NewsId}

4

1 に答える 1

0

わかりました。 と はそれぞれ表の と を表していると想定していIdますNewsId。これらの値をクエリ文字列を介して渡し、それらの ID に関連する記事をデータベースから取得します。IdNewsIdArticle

あなたはクエリ文字列をうまく読んでいます。しかし、あなたが読んでいる値で何もしていません。それらを SQL クエリに渡す必要があります。SqlCommand は次のようになります。

SqlCommand _cmd = new SqlCommand ("Select [NewsDetails],[Id] FROM Article WHERE [Id]=@Id AND [NewsId]=@NewsId",conn);

WHERE条項に注意してください。SQLクエリ内にパラメータを設定しています。次に、クエリ文字列から取得した値をこれらのパラメーターに入力する必要があります。

_cmd.Parameters.AddWithValue("@Id", _Id);
_cmd.Parameters.AddWithValue("@NewsId", _NewsId);

SqlCommand を実行すると、これら 2 つの ID で定義された記事のみが取得されます。

于 2012-12-13T18:10:53.727 に答える