Click here to Skip to main content
15,887,676 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
i have Multiple Datalist in the same page .. the user can click on records and this will redirect him to view page to view the infos. . I used querystring to send ID For the Clicked Record to view Page ... The problem is when i select record with ID EX: 17 .. Sometimes the info is correct but not always because if there is other record in other Table with ID ex:17 It replace it Instead Of the Clicked One !

Im Using c# / Asp.net 4.0 framework / sql server 2008

Here is my Code

StartPage.aspx ( The DataLists Page ) :


C#
public partial class MainMasterStartPage : System.Web.UI.Page
{
    protected SqlConnection _connection;
    protected SqlCommand _command;
    protected SqlDataAdapter _adp;
    protected System.Data.DataTable _tbl;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!(this.IsPostBack))
        {
            // For News DataList
            prepareConnection();
            _command.CommandText = "select top 5 * from News ORDER BY id DESC";
            _adp = new SqlDataAdapter();
            _tbl = new System.Data.DataTable();
            _adp.SelectCommand = _command;
            _adp.Fill(_tbl);

            dlNews.DataSource = _tbl;
            dlNews.DataBind();


            // For Sports DataList
            prepareConnection();
            _command.CommandText = "select top 5 * from Sports ORDER BY id DESC";
            _adp = new SqlDataAdapter();
            _tbl = new System.Data.DataTable();
            _adp.SelectCommand = _command;
            _adp.Fill(_tbl);

            dlSports.DataSource = _tbl;
            dlSports.DataBind();



            // For Technology DataList
            prepareConnection();
            _command.CommandText = "select top 5 * from Technology ORDER BY id DESC";
            _adp = new SqlDataAdapter();
            _tbl = new System.Data.DataTable();
            _adp.SelectCommand = _command;
            _adp.Fill(_tbl);

            dlTechnology.DataSource = _tbl;
            dlTechnology.DataBind();



            // For Articles DataList
            prepareConnection();
            _command.CommandText = "select top 5 * from Articles ORDER BY id DESC";
            _adp = new SqlDataAdapter();
            _tbl = new System.Data.DataTable();
            _adp.SelectCommand = _command;
            _adp.Fill(_tbl);

            dlArticles.DataSource = _tbl;
            dlArticles.DataBind();



            // For Islamics DataList
            prepareConnection();
            _command.CommandText = "select top 5 * from Islamics ORDER BY id DESC";
            _adp = new SqlDataAdapter();
            _tbl = new System.Data.DataTable();
            _adp.SelectCommand = _command;
            _adp.Fill(_tbl);

            dlIslamics.DataSource = _tbl;
            dlIslamics.DataBind();



        }

    }


    protected void prepareConnection()
    {
        _connection = new SqlConnection(@"Data Source=SONIC-PC\SQLEXPRESS;Initial Catalog=BrainStorms;User ID=sa;Password=gg123");
        _connection.Open();
        _command = new SqlCommand();
        _command.Connection = _connection;

    }


and The Viewpage to display the record that is already been clicked :

C#
public partial class View : System.Web.UI.Page
{

    protected SqlCommand News_command;
    protected SqlCommand Sports_command;
    protected SqlCommand Technology_command;
    protected SqlCommand Articles_command;
    protected SqlCommand Islamics_command;

    protected SqlDataAdapter News_adp;
    protected SqlDataAdapter Sports_adp;
    protected SqlDataAdapter Technology_adp;
    protected SqlDataAdapter Articles_adp;
    protected SqlDataAdapter Islamics_adp;

    protected System.Data.DataTable News_tbl;
    protected System.Data.DataTable Sports_tbl;
    protected System.Data.DataTable Technology_tbl;
    protected System.Data.DataTable Articles_tbl;
    protected System.Data.DataTable Islamics_tbl;

    protected SqlConnection _connection;
    protected string _ID;

    protected void Page_Load(object sender, EventArgs e)
    {
        if ((Request.QueryString["ID"] != null))
        {
            _ID = Request.QueryString["ID"].ToString();
        }

        //for The News dataList
        prepareConnection();

        News_command.CommandText = "select * from News where ID=@ID";
        News_command.Parameters.AddWithValue("ID", _ID);
        News_adp = new SqlDataAdapter();
        News_tbl = new System.Data.DataTable();
        News_adp.SelectCommand = News_command;
        News_adp.Fill(News_tbl);


        if (News_tbl.Rows.Count > 0)
        {
            lblID.Text = News_tbl.Rows[0]["ID"].ToString();
            lblTitle.Text = News_tbl.Rows[0]["Title"].ToString();
            lblContent.Text = News_tbl.Rows[0]["Contect"].ToString();

        }


        //For The Sports DataList
        prepareConnection();

        Sports_command.CommandText = "select * from Sports where ID=@ID";
        Sports_command.Parameters.AddWithValue("ID", _ID);
        Sports_adp = new SqlDataAdapter();
        Sports_tbl = new System.Data.DataTable();
        Sports_adp.SelectCommand = Sports_command;
        Sports_adp.Fill(Sports_tbl);


        if (Sports_tbl.Rows.Count > 0)
        {
            lblID.Text = Sports_tbl.Rows[0]["ID"].ToString();
            lblTitle.Text = Sports_tbl.Rows[0]["Title"].ToString();
            lblContent.Text = Sports_tbl.Rows[0]["Contect"].ToString();
        }



        //for The Technology DataList
        prepareConnection();

        Technology_command.CommandText = "select * from Technology where ID=@ID";
        Technology_command.Parameters.AddWithValue("ID", _ID);
        Technology_adp = new SqlDataAdapter();
        Technology_tbl = new System.Data.DataTable();
        Technology_adp.SelectCommand = Technology_command;
        Technology_adp.Fill(Technology_tbl);


        if (Technology_tbl.Rows.Count > 0)
        {
            lblID.Text = Technology_tbl.Rows[0]["ID"].ToString();
            lblTitle.Text = Technology_tbl.Rows[0]["Title"].ToString();
            lblContent.Text = Technology_tbl.Rows[0]["Contect"].ToString();
        }


        //For The Articles DataList
        prepareConnection();

        Articles_command.CommandText = "select * from Articles where ID=@ID";
        Articles_command.Parameters.AddWithValue("ID", _ID);
        Articles_adp = new SqlDataAdapter();
        Articles_tbl = new System.Data.DataTable();
        Articles_adp.SelectCommand = Articles_command;
        Articles_adp.Fill(Articles_tbl);


        if (Articles_tbl.Rows.Count > 0)
        {
            lblID.Text = Articles_tbl.Rows[0]["ID"].ToString();
            lblTitle.Text = Articles_tbl.Rows[0]["Title"].ToString();
            lblContent.Text = Articles_tbl.Rows[0]["Contect"].ToString();
        }


        //For The Islamics DataList
        prepareConnection();

        Islamics_command.CommandText = "select * from Islamics where ID=@ID";
        Islamics_command.Parameters.AddWithValue("ID", _ID);
        Islamics_adp = new SqlDataAdapter();
        Islamics_tbl = new System.Data.DataTable();
        Islamics_adp.SelectCommand = Islamics_command;
        Islamics_adp.Fill(Islamics_tbl);


        if (Islamics_tbl.Rows.Count > 0)
        {
            lblID.Text = Islamics_tbl.Rows[0]["ID"].ToString();
            lblTitle.Text = Islamics_tbl.Rows[0]["Title"].ToString();
            lblContent.Text = Islamics_tbl.Rows[0]["Contect"].ToString();
        }



    }

    protected void prepareConnection()
    {
        _connection = new SqlConnection(@"Data Source=SONIC-PC\SQLEXPRESS;Initial Catalog=BrainStorms;User ID=sa;Password=gg123");
        _connection.Open();
        News_command = new SqlCommand();
        News_command.Connection = _connection;
        Sports_command = new SqlCommand();
        Sports_command.Connection = _connection;
        Technology_command = new SqlCommand();
        Technology_command.Connection = _connection;
        Articles_command = new SqlCommand();
        Articles_command.Connection = _connection;
        Islamics_command = new SqlCommand();
        Islamics_command.Connection = _connection;

    }


and Here Is The StartPage.aspx Source :

ASP.NET
<%@ Page Title="" Language="C#" MasterPageFile="MainMaster.master" AutoEventWireup="true"
        CodeFile="StartPage.aspx.cs" Inherits="MainMasterStartPage" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
        <div class="MainLatest">
            <div id="mainNews" style="clear: both; text-decoration: none; color: Black; text-align: right;
                direction: rtl; width: auto; height: auto; margin-right: 0px; float: right; margin-top: 5px;
                border-bottom: 1px solid #7F2423;">
                <div id="news" style="border: 1px solid black; margin-removed 15px;background-color: #EAE9E4;">
                    <h3 style="background-color: #35496A; color: white; text-align: center; width: 650px;
                        float: right; border-bottom: 4px solid #7F2423; margin-bottom: 8px; padding-right: 5px;">
                        آخر الأخبار</h3>
                    <asp:DataList ID="dlNews" runat="server">
                        <ItemTemplate>
                            <a href='./NewsView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                                <div id="123">
                                    <div id="image" style="clear: both; float: right; margin: 0 5px 10px 10px;">
                                        <asp:Image ID="Image1" runat="server" ImageUrl="~/images/epica.jpg" Style="height: 70px;
                                            width: 130px; border: 1px solid black;" />
                                    </div>
                                    <div id="title" style="position: relative; float: right; top: -14px; right: 0px;
                                        height: 69px;">
                                        <asp:Label ID="lblTitle" runat="server" Text='<%#Eval("Title") %>' Style="font-size: 15px;
                                            font-weight: bold; line-height: 110px; "></asp:Label>
                                    </div>
                                </div>
                            </a>
                        </ItemTemplate>
                    </asp:DataList>
                </div>
                <div id="sports" style="border: 1px solid black; margin-removed 15px;background-color: #EAE9E4;">
                    <h3 style="background-color: #03C0F8; text-align: center; color: white; width: 650px;
                        float: right; border-bottom: 4px solid #7F2423; margin-bottom: 8px; padding-right: 5px;">
                        الرياضة</h3>
                    <asp:DataList ID="dlSports" runat="server">
                        <ItemTemplate>
                            <a href='./SportsView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                                <div id="123">
                                    <div id="image" style="clear: both; float: right; margin: 0 5px 10px 10px;">
                                        <asp:Image ID="Image1" runat="server" ImageUrl="~/images/epica.jpg" Style="height: 70px;
                                            width: 130px; border: 1px solid black;" />
                                    </div>
                                    <div id="title" style="position: relative; float: right; top: -18px; right: -2px;
                                        height: 76px;">
                                        <asp:Label ID="lblTitle" runat="server" Text='<%#Eval("Title") %>' Style="font-size: 15px;
                                            font-weight: bold; line-height: 110px;"></asp:Label>
                                    </div>
                                </div>
                            </a>
                        </ItemTemplate>
                    </asp:DataList>
                </div>
                <div id="technology"style="border: 1px solid black; margin-removed 15px;background-color: #EAE9E4;">
                    <h3 style="background-color: #FF9900; text-align: center; color: #7F2423; width: 650px;
                        float: right; border-bottom: 4px solid #7F2423; margin-bottom: 8px; padding-right: 5px;">
                        أخبار التكنولوجيا</h3>
                    <asp:DataList ID="dlTechnology" runat="server">
                        <ItemTemplate>
                            <a href='./TechnologyView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                                <div id="123">
                                    <div id="image" style="clear: both; float: right; margin: 0 5px 10px 10px;">
                                        <asp:Image ID="Image1" runat="server" ImageUrl="~/images/epica.jpg" Style="height: 70px;
                                            width: 130px; border: 1px solid black;" />
                                    </div>
                                    <div id="title" style="position: relative; float: right; top: -18px; right: -2px;
                                        height: 76px;">
                                        <asp:Label ID="lblTitle" runat="server" Text='<%#Eval("Title") %>' Style="font-size: 15px;
                                            font-weight: bold; line-height: 110px;"></asp:Label>
                                    </div>
                                </div>
                            </a>
                        </ItemTemplate>
                    </asp:DataList>
                </div>
                <div id="articles"style="border: 1px solid black; margin-removed 15px;background-color: #EAE9E4;">
                    <h3 style="background-color: #7F2423; text-align: center; color: white; width: 650px;
                        float: right; border-bottom: 4px solid #7F2423; margin-bottom: 8px; padding-right: 5px;">
                        مقالات</h3>
                    <asp:DataList ID="dlArticles" runat="server">
                        <ItemTemplate>
                            <a href='./ArticlesView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                                <div id="123">
                                    <div id="image" style="clear: both; float: right; margin: 0 5px 10px 10px;">
                                        <asp:Image ID="Image1" runat="server" ImageUrl="~/images/epica.jpg" Style="height: 70px;
                                            width: 130px; border: 1px solid black;" />
                                    </div>
                                    <div id="title" style="position: relative; float: right; top: -18px; right: -2px;
                                        height: 76px;">
                                        <asp:Label ID="lblTitle" runat="server" Text='<%#Eval("Title") %>' Style="font-size: 15px;
                                            font-weight: bold; line-height: 110px;"></asp:Label>
                                    </div>
                                </div>
                            </a>
                        </ItemTemplate>
                    </asp:DataList>
                </div>
                <div id="islamics"style="border: 1px solid black; margin-removed 15px;background-color: #EAE9E4;">
                    <h3 style="background-color: #FF9900; text-align: center; color: #7F2423; width: 650px;
                        float: right; border-bottom: 4px solid #7F2423; margin-bottom: 8px; padding-right: 5px;">
                        إسلاميات</h3>
                    <asp:DataList ID="dlIslamics" runat="server">
                        <ItemTemplate>
                            <a href='./IslamicsView.aspx?ID=<%#Eval("ID") %>' style="text-decoration: none;">
                                <div id="123">
                                    <div id="image" style="clear: both; float: right; margin: 0 5px 10px 10px;">
                                        <asp:Image ID="Image1" runat="server" ImageUrl="~/images/epica.jpg" Style="height: 70px;
                                            width: 130px; border: 1px solid black;" />
                                    </div>
                                    <div id="title" style="position: relative; float: right; top: -18px; right: -2px;
                                        height: 76px;">
                                        <asp:Label ID="lblTitle" runat="server" Text='<%#Eval("Title") %>' Style="font-size: 15px;
                                            font-weight: bold; line-height: 110px;"></asp:Label>
                                    </div>
                                </div>
                            </a>
                        </ItemTemplate>
                    </asp:DataList>
                </div>
            </div>
        </div>
    </asp:Content>



ASP.NET
and Here is The ViewPage.aspx Source:


<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <p dir="rtl">
       <asp:Label ID="lblTitle" runat="server" Text="Label" ></asp:Label>
    "</p>
<p dir="rtl">
   (<asp:Label ID="lblID" runat="server" Text="Label" ></asp:Label>
    )</p>
<p dir="rtl">
  :</p>
<p dir="rtl">
    <asp:Label ID="lblContent" runat="server" Text="Label" ></asp:Label>
</p>
</asp:Content>
Posted
Comments
chaau 25-Sep-13 20:28pm    
Please try to escalate the question to a simpler one. Your post is way too long. TL;DR, sorry
Yuvaraj Arasu 25-Sep-13 23:38pm    
Try to UrlEncode() the ID before concatenate to view page Url
(In-page:StartPage.aspx , In-place: ./NewsView.aspx?ID=<%#Eval("ID") %> )

And, Some other sugessions are,
--> In-page:"View.aspx.cs", In-event:"page_load" you are calling "prepareConnection();" for five times, That is not required. Just call only once at begining of the event.

--> Try to write single function to select simple queries from db and get dataset as return parameter, it'll reduce memory utilization.

The Solutions

1.When You redirecting the Id to other Page the event You know, which event is for whome .

at that time you pass the one more value in query string like type news,sports .



2.
C#
if ((Request.QueryString["ID"] != null))
        {
            _ID = Request.QueryString["ID"].ToString();
        }


like this you also check the type and according to that uou pass the Id in Particular Method to fetch data.
 
Share this answer
 
You need to pass two parameters to the second page. One being the Id, the other being the record type (News, Sports, etc).

Also, you need to change you database sa account password, since you just published it on the internet.
 
Share this answer
 
You should be able to provide the Topic (News, Sports, Tech, etc..) in the query string of your HyperLinks.and keep datalist in diffirent panel.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900