1

私のアプリケーションでは、データベースからデータを取得します。データベースには10個のレコードが含まれています。しかし、ページにレコードを表示しているときは、1つのレコードしか表示されません。10個のレコードニーズをすべて表示したい。セッション変数を使用してデータをページに保存および表示します。データをバインドするためのコントロールは必要ありません。データの保存と表示にセッション変数のみを使用したい。以下のimはコードを書きます。セッションストアには1つの値しかありませんが、セッションに複数の値を保存して複数のデータを表示したいのですが。

.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["divhtml_heading1"] = lstOfDivHtml 

そして、コンテンツをページに表示する際に、SessionからlstofDivHtmlを取得してループ表示する

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

PS

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 に答える