将数据库中的多个条目显示到aspx页面中

时间:2018-02-21 10:57:45

标签: asp.net repeater itemtemplate

我试图将数据库中的多行显示为aspx页面。我的aspx页面名称是news.aspx,我的表名为news。 我已经使用代码配置我的aspx来显示我希望我的页面看起来像什么。我附加了一个图像,以显示我希望它在页面加载时看起来像。 aspx页面使用ItemTemplate& asp:Repeater显示多行。

我的aspx页面配置如下:

<div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="col-lg-12">
                <div class="form-group alert alert-info">
                <asp:label runat="server" ID="lblNewsEdits">Latest Sports & Social News Items</asp:label>
                </div>
            </div>
        </div>
    </div>
    <asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="col-lg-12">
                <p>
                Title:
                <asp:Literal ID="litTitle" runat="server"></asp:Literal>
                (<asp:Literal ID="litDatePosted" runat="server"></asp:Literal>)
                </p>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="col-lg-12">
                <p>
                Title:
                <asp:Literal ID="litNewsContent" runat="server"></asp:Literal>
               </p>
            </div>
        </div>
    </div>
    </ItemTemplate>
    </asp:Repeater> 

我的aspx.cs页面配置为从新闻表中提取信息,我希望在aspx页面中显示三列数据(Title,DatePosted和NewsContent)。 对于以下三行,我收到错误:&#34;名称&#34; ...&#34;在当前背景下不存在。

  • litTitle.text = reader [&#34; Title&#34;]。ToString();
  • litDatePosted.Text = reader [&#34; Date Posted&#34;]。ToString();
  • litNewsContent.Text =读者[&#34;新闻内容&#34;]。ToString();

aspx.cx页面配置如下:

 protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString"].ConnectionString);

        string getNewsQuery = "SELECT Id, Title, DataPosted, Newsontent FROM News WHERE Id = @id";


        //get email based on id
        SqlCommand getNewsCommand = new SqlCommand(getNewsQuery, connection);
        object id = null;
        getNewsCommand.Parameters.AddWithValue("@id", id);
        connection.Open();

        SqlDataReader reader = getNewsCommand.ExecuteReader();

        while (reader.Read())
        {
            litTitle.txt = reader ["Title"].ToString();
            litDatePosted.Text = reader["Date Posted"].ToString();
            litNewsContent.Text = reader["News Content"].ToString();

        }

        reader.Close();
        connection.Close();

    }

我的数据库表配置如下:

CREATE TABLE [dbo].[News] (
[Id]          INT            IDENTITY (1, 1) NOT NULL,
[Title]       NVARCHAR (100) NOT NULL,
[DatePosted]  DATE           NOT NULL,
[NewsContent] NTEXT          NOT NULL,
[IsRead]      BIT            DEFAULT ((0)) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)[![enter image description here][1]][1]
);

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试格式化您的代码:

litTitle.txt = reader["Title"].ToString();
litDatePosted.Text = reader["DatePosted"].ToString();
litNewsContent.Text = reader["NewsContent"].ToString();

同样在你的SQL查询中,你输入的SELECT语句中有一个拼写错误 &#39; Newsontent&#39;而不是&#39; NewsContent&#39;

修改 尝试使用网格视图而不是表格。 GridView应根据SqlDataAdapter

提供的格式自行格式化
 protected void Pageaaa_Load(object sender, EventArgs e)
{
    SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString"].ConnectionString);

    string getNewsQuery = "SELECT Id, Title, DataPosted, Newsontent FROM News WHERE Id = @id";


    //get email based on id
    SqlCommand getNewsCommand = new SqlCommand(getNewsQuery, connection);
    object id = null;
    getNewsCommand.Parameters.AddWithValue("@id", id);
    connection.Open();

    SqlDataReader reader = getNewsCommand.ExecuteReader();
    SqlDataAdapter da = new SqlDataAdapter();
    DataTable dataTable = new DataTable();
    da.Fill(dataTable);
    GridView1.DataSource = dataTable;
    GridView1.DataBind();

    connection.Close();
    da.Dispose();
}