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和。您通过查询字符串传递这些值,并希望从数据库中提取与这些 ID 相关的文章。NewsIdArticle

您正在阅读查询字符串。但是您没有对正在阅读的值做任何事情。您需要将它们传递给 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 运行时,您应该获得由这两个 ID 定义的文章。

于 2012-12-13T18:10:53.727 回答