我试图将数据库中的多行显示为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;在当前背景下不存在。
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]
);
有什么想法吗?
答案 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();
}