PDA

View Full Version : سوال: ساخت یک جدول اخبار



mahtab kf
چهارشنبه 01 آذر 1391, 17:22 عصر
با سلام
من می خواهم یک جدول اخبار بسازم به اینصورت که 4 خبر اول بانکم خوانده بشود و هر کدام در یک hyperlink نمایش داده شوند اما نمی دانم چگونه این کارو بکنم ممنون می شم راهنماییم کنید.
کدی رو که نوشتم به اینصورت است:




string query = "select top 4 * from TBnews order by newsID Desc
SqlCommand cmd = new SqlCommand(query,con
.
.

SqlDataReader dr = cmd.ExecuteReader();
dr.Read();

HyperLink1.NavigateUrl = dr["urlAddress"].ToString();
HyperLink1.Text = dr["textNews"].ToString();

HyperLink2.NavigateUrl = dr["urlAddress"].ToString();
HyperLink2.Text = dr["textNews"].ToString();

HyperLink3.NavigateUrl = dr["urlAddress"].ToString();
HyperLink3.Text = dr["textNews"].ToString();

HyperLink4.NavigateUrl = dr["urlAddress"].ToString();
HyperLink4.Text = dr["textNews"].ToString();




اما فقط یک خبر را تکرار می کند

mahtab kf
چهارشنبه 01 آذر 1391, 23:29 عصر
کسی نمی تونه کمکم کنه؟

ya30ien2
چهارشنبه 01 آذر 1391, 23:33 عصر
میتونی از repeater استفاده کنی
مثال :


<asp:SqlDataSource ID="SqlDataSource5" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM [News] WHERE [Id] = @id"
InsertCommand="INSERT INTO [News] ([Titel],[Text],[Subject],[Date],[Author]) VALUES (@title, @text,@subject,@date,@author)"

SelectCommand="SELECT * FROM [News]"

UpdateCommand="UPDATE [News] SET [Titel] = @title, [Text] = @text,[Subject]=@subject,[Date]=@date,[Author]=@author, WHERE [Id] = @id">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Titel" Type="String" />
<asp:Parameter Name="Text" Type="String" />
<asp:Parameter Name="Subject" Type="String" />
<asp:Parameter Name="Date" Type="String" />
<asp:Parameter Name="Author" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Titel" Type="String" />
<asp:Parameter Name="Text" Type="String" />
<asp:Parameter Name="Subject" Type="String" />
<asp:Parameter Name="Date" Type="String" />
<asp:Parameter Name="Author" Type="String" />
<asp:Parameter Name="Id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource5">
<ItemTemplate>


<div class="divnews">
<asp:Label id="LTitle" class="news" runat="server" Text='<%# Eval("Titel","{0}") %>'></asp:Label>
<div class="div2">
<asp:ImageButton id="Bedit" class="bedit" CommandName='<%# Eval("Id","{0}") %>' CommandArgument="Edit" ImageUrl="~/Image/WebSite/Edit.png" onclick="Bedit_Click" runat="server"></asp:ImageButton>
<asp:ImageButton id="Bdelete" class="bedit" CommandName='<%# Eval("Id","{0}") %>' CommandArgument="Delete" ImageUrl="~/Image/WebSite/Delete.png" onclick="Bdelete_Click" runat="server"></asp:ImageButton>
</div></div>




</ItemTemplate>
</asp:Repeater>
</div></div>

Cybersilent
پنج شنبه 02 آذر 1391, 12:10 عصر
با سلام
من می خواهم یک جدول اخبار بسازم به اینصورت که 4 خبر اول بانکم خوانده بشود و هر کدام در یک hyperlink نمایش داده شوند اما نمی دانم چگونه این کارو بکنم ممنون می شم راهنماییم کنید.
کدی رو که نوشتم به اینصورت است:




string query = "select top 4 * from TBnews order by newsID Desc
SqlCommand cmd = new SqlCommand(query,con
.
.

SqlDataReader dr = cmd.ExecuteReader();
dr.Read();

HyperLink1.NavigateUrl = dr["urlAddress"].ToString();
HyperLink1.Text = dr["textNews"].ToString();

HyperLink2.NavigateUrl = dr["urlAddress"].ToString();
HyperLink2.Text = dr["textNews"].ToString();

HyperLink3.NavigateUrl = dr["urlAddress"].ToString();
HyperLink3.Text = dr["textNews"].ToString();

HyperLink4.NavigateUrl = dr["urlAddress"].ToString();
HyperLink4.Text = dr["textNews"].ToString();




اما فقط یک خبر را تکرار می کند








ببینید وقتی شما از Dr.Read() استفاده می کنید یعنی که فقط یک سطر از خروجی رو بخون برای همین فقط یکی از خبر ها رو به شما نشون میده
باید بنویسید

while (Dr.Read())
{
//Do Somthing
}

و برای تکرار هم بهتره از GridView استفاده بکنید ، ممکنه بعدا بخواهید تعداد بیشتری خبر رو نمایش بدید.

Cybersilent
پنج شنبه 02 آذر 1391, 12:13 عصر
البته می تونید به این شکل هم تغیرش بدید که آسونتره

string query = "select top 4 * from TBnews order by newsID Desc
SqlCommand cmd = new SqlCommand(query,con
.
.

SqlDataReader dr = cmd.ExecuteReader();
dr.Read();

HyperLink1.NavigateUrl = dr["urlAddress"].ToString();
HyperLink1.Text = dr["textNews"].ToString();

dr.Read();
HyperLink2.NavigateUrl = dr["urlAddress"].ToString();
HyperLink2.Text = dr["textNews"].ToString();

dr.Read();
HyperLink3.NavigateUrl = dr["urlAddress"].ToString();
HyperLink3.Text = dr["textNews"].ToString();

dr.Read();
HyperLink4.NavigateUrl = dr["urlAddress"].ToString();
HyperLink4.Text = dr["textNews"].ToString();