2009-03-29 5 views
0

を表示するにはヘルプが必要です私のコードです:は、私は私の銀行業務アプリケーションでマーキーマークアップ内のニュースを表示するが、その誰かが私のcode.Hereでエラーが何であるか私を助けhappening.Pleaseないしたいデータインサイダーマーキー

<marquee bgcolor="silver" direction="left" id="marq1" runat="server" behavior="scroll" scrolldelay="80" style="height: 19px" width="565"> 
<% 
    String se = Session["countnews"].ToString(); 
    for (int i = 0; i < int.Parse("" +se); i++) 
    { %> 
     <strong><%Response.Write("&nbsp;&nbsp;" + Session["news"+i] + "&nbsp;&nbsp;"); %></strong> 
<% } %> 
</marquee> 

public class News 
{ 
    DataSet ds = new DataSet("Bank"); 
    SqlConnection conn; 
    String check; 
    SqlDataAdapter sda; 
    int i; 
    public string News_Name; 
    public int Count_News; 
public int newsticker() 
    { 
     conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BankingTransaction"].ConnectionString.ToString()); 
     check = "Select NewsTitle from News where NewsStatus = 'A'"; 
     sda = new SqlDataAdapter(check, conn); 
     sda.Fill(ds, "News"); 
     if (ds.Tables[0].Rows.Count > 0) 
     { 
      for (i = 0; i < ds.Tables[0].Rows.Count; i++) 
      { 
       News_Name =i+ ds.Tables[0].Rows[i].ItemArray[0].ToString(); 
      } 
      Count_News = ds.Tables[0].Rows.Count;  } 
     else 
     { 
      News_Name =0+ "Welcome to WestSide Bank Online Web site!"; 
      Count_News = 1; 
     } 
     return int.Parse(Count_News.ToString());  
    } 

protected void Page_Load(object sender, EventArgs e) 
    { 
     News obj = new News(); 
     try 
     { 
      obj.newsticker(); 
      Session["news"] = obj.News_Name.ToString(); 
      Session["countnews"] = obj.Count_News.ToString();  
     } 
     catch (SqlException ex) 
     { 
      Response.Write("Error in login" + ex.Message); 
      Response.Redirect("Default.aspx"); 
     } 
     finally 
     { 
      obj = null; 
     } 
    } 
+0

挿入しようとしているコンテンツにエラーがある可能性があります。マーキーに入れているデータの例を挙げてください。 また、「起こっていない」とはどういう意味ですか?エラーが何かを具体的に... – Dror

+0

マーキータグの内部にニュースが浮かんでいないことを意味します。私はエラーを取得していません。ページの他のすべてのコンテンツは正常に動作しています。 – user59637

答えて

0

セッション[「ニュース」+ i]の

しかし、あなたは、セッションスコープにnews'プラス - 整数」と呼ばれる何かを入れていません。あなたは、1つのNewsオブジェクトの 'News_Name'プロパティとして、データセットを繰り返し、各タイトル(不思議なことに整数で接頭辞)を格納しています。 'News_Name'への各書き込みは前のものを上書きするので、最後のタイトルのみがSession ["news"]の最後に格納されます。

セッションは、ページごとのデータを保存するのに面倒な場所です。セッションは、複数のページの読み込みで持続するデータ用であり、ユーザーが2ページを一度に読み込むと干渉する可能性があります。

また、HTMLEncode()を使用せずに文字列を入力すると、セキュリティの悪いニュース(特に「銀行サイト」!)のニュースのタイトルその中に「<」という文字が含まれている可能性があります。そして、なぜnewscountという整数を取って、文字列に変換し、再び文字列に変換し、再び文字列に変換して、最後に整数に戻して解析するのか、私は確信していません。 (?)

一般的に、これは古典的なASPとコードビハインドの技術の不快な組み合わせのようです。 [免責事項

<asp:Repeater DataSourceID="TickerSource" runat="server"> 
    <ItemTemplate><strong> 
     <%# Eval("NewsTitle") %> 
    </strong></ItemTemplate> 
</asp:Repeater> 

<asp:SqlDataSource ID="TickerSource" runat="server" 
    SelectCommand="SELECT NewsTitle FROM News WHERE NewsStatus='A'" 
    ConnectionString="<%$ ConnectionStrings:BankingTransaction %>" 
/> 

::私は実際に私の生活の中でASP.NETの行を書いたことがありませんので、これが動作しない場合があり、のようなものを使用して、この全体の多くに簡単に書き込むことが可能でなければなりません私には思えますそのまま。

関連する問題