Click here to Skip to main content
15,886,091 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
i want winform datagrid paging with timer interval,
Please help me

What I have tried:

C#
private void BindGrid(int pageIndex)
        {

            using (SqlConnection con = new SqlConnection(connection))
            {
                using (SqlCommand cmd = new SqlCommand("Employee_Details_procedure", con))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
                    cmd.Parameters.AddWithValue("@PageSize", PageSize);
                    cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 2);
                    cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
                    con.Open();
                    DataTable dt = new DataTable();
                    dt.Load(cmd.ExecuteReader());
                    dataGridView1.AutoGenerateColumns = false;

                    dataGridView1.Columns[0].Name = "image";
                    dataGridView1.Columns[0].HeaderText = "Image";
                    dataGridView1.Columns[0].DataPropertyName = "Image";
                    dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                    dataGridView1.Columns[1].Name = "id";
                    dataGridView1.Columns[1].HeaderText = "Id";
                    dataGridView1.Columns[1].DataPropertyName = "id";
                    dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                    dataGridView1.Columns[2].Name = "name";
                    dataGridView1.Columns[2].HeaderText = "Name";
                    dataGridView1.Columns[2].DataPropertyName = "name";
                    dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

                    dataGridView1.Columns[3].Name = "designation";
                    dataGridView1.Columns[3].HeaderText = "Designation";
                    dataGridView1.Columns[3].DataPropertyName = "designation";
                    dataGridView1.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

                    dataGridView1.Columns[4].Name = "address";
                    dataGridView1.Columns[4].HeaderText = "Address";
                    dataGridView1.Columns[4].DataPropertyName = "address";
                    dataGridView1.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
                    dataGridView1.AllowUserToAddRows = false;
                    dataGridView1.DataSource = dt;
                    con.Close();
                    int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
                    this.PopulatePager(recordCount, pageIndex);
                }
            }



 int pageCount = 0;
        List<page> pages_list = new List<page>();
        private void PopulatePager(int recordCount, int currentPage)
        {if (count == 0)
            {
             count = 2;
            }
            else
            {
                count = count + 1;
                
            }

            Timer.Tick += new System.EventHandler(this.Timer_Tick);
            Timer.Interval = 2000;
            Timer.Start();
        }
        //string Name;
        System.Timers.Timer timer = new System.Timers.Timer();
        public  void MyElapsedMethod(object sender, ElapsedEventArgs e, string Name)
        {
              BindGrid(int.Parse( Name.ToString()));
        }
        private void Timer_Tick(object sender, EventArgs e)
        {
            this.BindGrid(3);
            // System.Threading.Thread.Sleep(8000);
        }
    }
Posted
Updated 21-Mar-18 17:16pm
v7
Comments
Maciej Los 6-Mar-18 3:21am    
"I want..." - does NOT sound like a question.
Datagrid control is inaccesible in WinForm.

i cant exactly say answer for you but i answered time interval to change forms
here is the link
How to make full screen windows form's slide show 10 sec interval[^]


change the paging index when timer elapses
here your passing pageindex so set a variable timechanging .increment the value of variable and pass that value as parameter
private void BindGrid(int timechanging)
{
//write your code for fetching data from database 
}
 
Share this answer
 
i got the answear...............

Timer timerAnimation = new Timer(); // insert timer to page and change the name timerAnimation
Globals Globals = new Globals(); //declare globally by creating seperate cs file


private void Form1_Load(object sender, EventArgs e)
{
this.BindGrid(1);
}


private void BindGrid(int pageIndex)
{
using (SqlConnection con = new SqlConnection(connection))
{
using (SqlCommand cmd = new SqlCommand("Employee_Details_procedure", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 2);
cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
con.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
dataGridView1.AutoGenerateColumns = false;
dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("Tahoma", 11.0F, FontStyle.Bold);
dataGridView1.DefaultCellStyle.Font = new Font("Calibri", 10.0F, FontStyle.Regular);

dataGridView1.Columns[0].Name = "image";
dataGridView1.Columns[0].HeaderText = "Image";
dataGridView1.Columns[0].DataPropertyName = "Image";
dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

dataGridView1.Columns[1].Name = "id";
dataGridView1.Columns[1].HeaderText = "Id";
dataGridView1.Columns[1].DataPropertyName = "id";
dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

dataGridView1.Columns[2].Name = "name";
dataGridView1.Columns[2].HeaderText = "Name";
dataGridView1.Columns[2].DataPropertyName = "name";
dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

dataGridView1.Columns[3].Name = "designation";
dataGridView1.Columns[3].HeaderText = "Designation";
dataGridView1.Columns[3].DataPropertyName = "designation";
dataGridView1.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

dataGridView1.Columns[4].Name = "address";
dataGridView1.Columns[4].HeaderText = "Address";
dataGridView1.Columns[4].DataPropertyName = "address";
dataGridView1.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.DataSource = null;
dataGridView1.DataSource = dt;
con.Close();
int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
this.PopulatePager(recordCount, pageIndex);
timerPanel.Start();

}
}
}
private void PopulatePager(int recordCount, int currentPage)
{
if (Globals.Globaints == 0)
{
Globals.Globaints = 1;
}
else
{
count = Globals.Globaints + 1;
Globals.Globaints = count;
}
double dblPageCount = (double)((decimal)recordCount / Convert.ToDecimal(PageSize));
pageCount = (int)Math.Ceiling(dblPageCount);
}
private void timerPanel_Tick(object sender, EventArgs e)
{
if (Globals.Globaints <= pageCount)
{
timerPanel.Stop();
timerPanel.Interval = 3000;
int GlovalValue = Globals.Globaints;
BindGrid(GlovalValue);
timerPanel.Start();
}

if (Globals.Globaints > pageCount)
{
Globals.Globaints = 1;
}
}
 
Share this answer
 
v4

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