1

在我的应用程序中,我从数据库中检索数据。在数据库中包含 10 条记录。但是当我在页面中显示记录时,它只显示一条记录。我希望显示所有 10 条记录。我使用会话变量在页面中存储和显示数据。我不希望任何控件来绑定数据。我只想使用会话变量来存储和显示数据。下面我写代码。我知道会话只存储一个值,但我希望会话存储多个值并显示多个数据。

.cs 文件

protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=Aarambh;Initial Catalog=rebuild_technology;Integrated Security=True");
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from content_managment ", con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        foreach (DataRow dr in ds.Tables[0].Rows)

        {
            Session["divhtml_heading1"] = dr["divhtml_content"].ToString();

        }
}

这里我在 aspx 页面中显示数据。

源代码

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Home" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 <% Response.Write(Session["divhtml_heading1"].ToString()); %>
</asp:Content>
4

2 回答 2

1

我建议将所有数据库内容存储在自定义对象中,例如

List<string> lstOfDivHtml = new List<string>();

将内容存储在 foreach 循环中,例如

 foreach (DataRow dr in ds.Tables[0].Rows)
 {
    lstOfDivHtml.Add(dr["divhtml_content"].ToString());
 }

您在 forloop 中填充 lstOfDivHtml 并在 for 循环之后将其设置为 session 一次

Session["divhtml_heading1"] = lstOfDivHtml 

当您在页面上显示内容时,从 Session 中检索 lstofDivHtml 并在循环中显示它

var list = Session["divhtml_heading1"] as List<string>; // now loop over 'list'.

附言

protected void Page_Load(object sender, EventArgs e)
    {
        //Define list
        List<string> lstOfDivHtml = new List<string>();  
        SqlConnection con = new SqlConnection("Data Source=Aarambh;Initial Catalog=rebuild_technology;Integrated Security=True");
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from content_managment ", con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
          //add records from dr to lstOfDivHtml 
          lstOfDivHtml.Add(dr["divhtml_content"].ToString());
        }
  }

在页面标记或代码隐藏

<% 
var list = Session["divhtml_heading1"] as List<string>;
foreach(var item in  list )
{
 Response.Write(item); 
}
%> 

现在不能比这更具体了:)

于 2012-06-18T09:01:47.010 回答
0

快速一种肮脏的方法是使用:

Session["divhtml_heading1"] &= dr["divhtml_content"].ToString();

追加行数据,而不是:

Session["divhtml_heading1"] = dr["divhtml_content"].ToString();

替换行数据。

于 2012-06-18T15:09:48.080 回答