954,560 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

button click should bring next record from database

Hi folks,
I have an ASP page.
I have a label and button on that page.
label shows data from database.
lets say i have 100 rows in database

Now when I run my page i want to see first row data on my page label...
and when user click next button I want to see next record (next row) in the database on that label

So in short next button should bring next row from database...

how can i achieve this????

gholap_rohit
Light Poster
33 posts since Dec 2009
Reputation Points: 10
Solved Threads: 0
 

>how can i achieve this????

Think about HttpSession.

__avd
Posting Genius (adatapost)
Moderator
8,648 posts since Oct 2008
Reputation Points: 2,136
Solved Threads: 1,241
 

Hi,

The following is one method of do the above. but there are much more better methods of achieving the same

Place one Label, Button and a HiddenField in the ASPX page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;  

namespace Test
{
    public partial class DataDisplay : System.Web.UI.Page
    {
        SqlConnection cnn = new SqlConnection();
        DataTable dt = new DataTable(); 
        int rowIndex = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            cnn.ConnectionString = "data source=.;initial catalog=northwind;user id=sa;password=sa";
            cnn.Open();
            PopulateDataTable();
            if (!IsPostBack)
            {
                Label1.Text = dt.Rows[0]["CompanyName"].ToString();
                HiddenField1.Value = "1";
            }

            if (Request.Form["HiddenField1"] != null)
                rowIndex = Convert.ToInt16(Request.Form["HiddenField1"].ToString());  

            if (rowIndex == dt.Rows.Count && rowIndex != 0)
            {
                rowIndex = 0;
                HiddenField1.Value = 0;
            }

        }

        private void PopulateDataTable()
        {
            DataSet ds = new DataSet();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = cnn;
            cmd.CommandText = "SELECT * FROM CUSTOMERS";
            cmd.CommandType = CommandType.Text;

            SqlDataAdapter sDA = new SqlDataAdapter();
            sDA.SelectCommand = cmd;
            sDA.Fill(ds, "Customer");
            cnn.Close();
            dt = ds.Tables[0]; 

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (dt.Rows.Count > 0)
            {
                Label1.Text = dt.Rows[rowIndex]["CompanyName"].ToString();
                rowIndex++;
                HiddenField1.Value = rowIndex.ToString(); 
            }
        }
    }
}
vimalrasa
Newbie Poster
7 posts since Nov 2009
Reputation Points: 11
Solved Threads: 5
 
using System.data.sqlclient;

// add here other necessary name spaces

follow the steps
declare following items globally

dataset ds=new dataset();
     static int count=0;

1. write the following code in your page_load/form_load(in case of window application)

sqlDataAdapter adp=new SqlDataAdapter("select * from    tablename", yourconnectionstring);
         
         adp.fill(ds);
         label1.text=ds.tables[0].rows[count][0].tostring();//this code will give you first row's first columns's data. count=row number and [0]=column no.

2. Now write the following code to your button click event

count++;
      label.text=     ds.tables[0].rows[count][0].tostring();
MARKAND911
Junior Poster
126 posts since Nov 2008
Reputation Points: 10
Solved Threads: 2
 

You can loop the Rows of the DataTable to move to the Next data row... But since you need to get the next row entry on button click then you can declare an int variable that would increment the value by 1 on every click..

Here's an example:

private DataTable GetData()
    {
        DataTable dt = new DataTable();
        SqlConnection connection = new SqlConnection("YOUR CONNECTION STRING HERE");
        try
        {
            connection.Open();
            SqlCommand sqlCmd = new SqlCommand("Select * From Table", connection);
            SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);

            sqlDa.Fill(dt);
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            string msg = "Fetch Error:";
            msg += ex.Message;
            throw new Exception(msg);

        }
        finally
        {
            connection.Close();
        }
        return dt;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            DataTable dt = GetData();
            if (dt.Rows.Count > 0)
            {
                // Populate the TextBox with the first entry on page load
                TextBox1.Text = dt.Rows[0]["Name"].ToString(); 
                //Then we store the DataTable in Session so that we will NOT
                //query the DB on every postbacks
                Session["dt"] = dt;
            }

        }
     }

    protected void Button1_Click(object sender, EventArgs e)
    {
        int rowIndex = 0;
        rowIndex++;
        if (Session["dt"] != null)
        {
            DataTable dt = (DataTable)Session["dt"];
            if (rowIndex <= dt.Rows.Count)
            {
                //get the next row entry on Button Click by setting the Row Index
                TextBox1.Text = dt.Rows[rowIndex]["Name"].ToString(); 
            }
        }
     }
pauldani
Light Poster
49 posts since Jan 2010
Reputation Points: 8
Solved Threads: 7
 
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;

namespace database_connectivity
{
    public partial class _Default : System.Web.UI.Page
    {
        OleDbConnection con;
        DataTable dt = new DataTable();
        
        
        OleDbDataReader thisreader;
        int rowindex = 0;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:/try/stud.accdb");
            con.Open();
            PopulateDataTable();

            if (!IsPostBack)
            {
                TextBox1.Text = dt.Rows[0]["Rollno"].ToString();
                TextBox2.Text = dt.Rows[0]["Name1"].ToString();
                HiddenField1.Value = "1";
            }

            if(Request .Form ["HiddenField1"]!=null )
                rowindex=Convert.ToInt16 (Request .Form["HiddenField1"].ToString ());

            if (rowindex == dt.Rows.Count && rowindex != 0)
            {
                rowindex = 0;
                HiddenField1.Value = "0";
            }


        }
       
        protected void Button1_Click(object sender, EventArgs e)
        {

            if (dt.Rows.Count > 0)
            {
                TextBox1.Text = dt.Rows[rowindex]["Rollno"].ToString();
                TextBox2.Text = dt.Rows[rowindex]["Name1"].ToString();
                rowindex++;
                HiddenField1.Value = rowindex.ToString();
            }
        }

        private void PopulateDataTable()
        {
            DataSet ds = new DataSet();
            OleDbCommand cmd = con.CreateCommand();

            cmd.Connection = con;
            cmd.CommandText = "SELECT Rollno,Name1 from stud";
            cmd.CommandType = CommandType.Text;

            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = cmd;
            adapter.Fill(ds, "Stud");

            con.Close();

            dt = ds.Tables[0];
        }
    }
}
smita b
Newbie Poster
1 post since Sep 2011
Reputation Points: 10
Solved Threads: 0
 

Viewing next record until end of record.....

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

public partial class _Default : System.Web.UI.Page 
{
    int count, count2, count3;
    private DataTable GetData()
    {
        DataTable dt = new DataTable();
        OleDbConnection con1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\quiz.mdb");
        try
        {
            con1.Open();
            OleDbCommand cmd = new OleDbCommand("select * from quizpaper",con1);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = cmd;
            adapter.Fill(dt);
         }
        catch (Exception ex)
        {
            string msg = "Fetch Error:";
        }
        
        return dt;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        cmd_qno.Visible = false;
        cmd_count.Visible = false;
        cmd_answer.Visible = false;
        if (!Page.IsPostBack)
        {
            DataTable dt = GetData();
            if (dt.Rows.Count > 0)
            {
                lbl_question.Text = dt.Rows[0]["q_question"].ToString();
                rd_answers.Items.Add(dt.Rows[0]["q_answer1"].ToString());
                rd_answers.Items.Add(dt.Rows[0]["q_answer2"].ToString());
                rd_answers.Items.Add(dt.Rows[0]["q_answer3"].ToString());
                rd_answers.Items.Add(dt.Rows[0]["q_answer4"].ToString());
                Session["dt"] = dt;
            }
        }
    }

    protected void cmd_next_Click(object sender, EventArgs e)
    {
        rd_answers.Items.Clear();    
        try
        {
            cmd_qno.Text = (Int32.Parse(cmd_qno.Text) + 1).ToString();
            cmd_count.Text = (Int32.Parse(cmd_count.Text) + 1).ToString();
            lbl_qno.Text = cmd_qno.Text;
            
            if (Session["dt"] != null)
            {
                DataTable dt = (DataTable)Session["dt"];
                count = Int32.Parse(lbl_qno.Text);
                if (count < dt.Rows.Count)
                {
                    lbl_question.Text = dt.Rows[count]["q_question"].ToString();
                    rd_answers.Items.Add(dt.Rows[count]["q_answer1"].ToString());
                    rd_answers.Items.Add(dt.Rows[count]["q_answer2"].ToString());
                    rd_answers.Items.Add(dt.Rows[count]["q_answer3"].ToString());
                    rd_answers.Items.Add(dt.Rows[count]["q_answer4"].ToString());
                         
                 }
                else
                {
                    cmd_next.Visible = false;
                    lbl_answer.Visible = false;
                    lbl_qno.Visible = false;
                    lbl_question.Text = "You complete this Exam...................................";
                    Label1.Visible = false;
                 }
            }
     }
        catch (Exception ex)
        {
        }
     }
    protected void rd_answers_SelectedIndexChanged(object sender, EventArgs e)
    {
         DataTable dt = (DataTable)Session["dt"];
         count2 = Int16.Parse(cmd_count.Text);
         if ((rd_answers.SelectedValue).Equals((dt.Rows[count2]["q_correctanswer"].ToString())))
         {
            cmd_answer.Text = (Int32.Parse(cmd_answer.Text) + 1).ToString();
            count3 = Int16.Parse(cmd_answer.Text);
         }
         else
         {
            cmd_answer.Text = (Int32.Parse(cmd_answer.Text) - 1).ToString();
            count3 = Int16.Parse(cmd_answer.Text);
         }
         lbl_mark.Text = "You Got Mark :" + count3;
    }
}
ArunPrakasam
Newbie Poster
1 post since Oct 2011
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You