نمایش نتایج 1 تا 2 از 2

نام تاپیک: خطا در صفحه بندی Datagridview

  1. #1

    Question خطا در صفحه بندی Datagridview

    سلام خدمت دوستان
    من تقریبا 50 تا رکورد در بانک اطلاعاتی دارم که میخواهم اطلاعات را بصورت صفحه بندی در دیتاگرید نمایش دهم هر صفحه 10 رکورد ولی بازدن دکمه صفحه بعدی خطا میده.

    private OleDbCommand cmd1;
    private OleDbCommand cmd2;
    private OleDbDataAdapter ada1;
    DataSet ds;
    static OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DB.mdb;Persist Security Info=True");
    //--------------------------------------
    private int pageSize = 10;
    private int currentpageindex = 0;
    private int Totalpage = 0;


    private void Form1_Load(object sender, EventArgs e)
    {
    cmd1 = new OleDbCommand("select * from Tbl_Personel order by CodePersenol", con);
    ds = new DataSet();
    ada1 = new OleDbDataAdapter(cmd1);
    ada1.Fill(ds, "Tbl_Personel");
    DWG1.DataSource = ds;
    DWG1.DataMember = "Tbl_Personel";
    this.calculateTotalpages();
    this.DWG1.ReadOnly = true;
    this.DWG1.DataSource = Getcurrentrecords(1, con);
    txtNumRecord.Text = (currentpageindex + 1) + " از " + Totalpage;
    }

    public void calculateTotalpages()
    {
    int rowCount = ds.Tables["Tbl_Personel"].Rows.Count;
    this.Totalpage = rowCount / pageSize;
    if (rowCount % pageSize > 0)
    {
    this.Totalpage += 1;
    }
    }
    private DataTable Getcurrentrecords(int page, OleDbConnection con)
    {
    DataTable dt = new DataTable();
    if (page == 1)
    {
    cmd2 = new OleDbCommand(" select Top " + pageSize + " * from Tbl_Personel order by CodePersenol", con);
    //InitializePageNavigationButtons();
    }
    else
    {
    int previouspagelimit = (page - 1) * pageSize;
    cmd2 = new OleDbCommand(" select Top " + pageSize + " * from Tbl_Personel " + " CodePersenol not in " +
    "(select Top " + previouspagelimit + " CodePersenol from Tbl_Personel order by CodePersenol)", con);
    }

    try
    {
    this.ada1.SelectCommand = cmd2;
    this.ada1.Fill(dt);
    }
    finally
    {
    con.Close();
    }
    return dt;
    }

    private void btnNext_Click(object sender, EventArgs e)
    {
    if (this.currentpageindex < this.Totalpage)
    {
    this.currentpageindex++;
    this.DWG1.DataSource = Getcurrentrecords(this.currentpageindex, con);
    txtNumRecord.Text = currentpageindex + " از " + Totalpage;
    }
    }

    private void btnend_Click(object sender, EventArgs e)
    {
    this.currentpageindex = this.Totalpage;
    txtNumRecord.Text = currentpageindex + " از " + Totalpage;
    this.DWG1.DataSource = Getcurrentrecords(this.currentpageindex, con);
    }

    private void btnback_Click(object sender, EventArgs e)
    {
    if (this.currentpageindex > 1)
    {
    this.currentpageindex--;
    this.DWG1.DataSource = Getcurrentrecords(this.currentpageindex, con);
    txtNumRecord.Text = currentpageindex + " از " + Totalpage;
    }
    }

    private void btnHome_Click(object sender, EventArgs e)
    {
    this.currentpageindex = 1;
    this.DWG1.DataSource = Getcurrentrecords(this.currentpageindex, con);
    txtNumRecord.Text = currentpageindex + " از " + Totalpage;
    }



    کجا اشتباه کردم...؟
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: خطا در صفحه بندی Datagridview

    در کوئری کلمه where رو ننوشتید.
    شما کل رکوردها را در دیتاست ds لود کردید و این اشتباه است(صفحه بندی علاوه بر دسته بندی رکوردها باعث میشه فقط رکوردهای مورد نیاز لود بشوند نه همه رکوردها). در کوئری ، توسط فانکشن Count تعداد رکوردها رو میتونید بدست بیارید.
            private OleDbConnection _con;
    private OleDbCommand _cmd;
    private OleDbDataAdapter _adapter;
    //--------------------------------------
    private int _pageSize = 10;
    private int _currentPageIndex;
    private decimal _totalpage;

    public Form1()
    {
    InitializeComponent();

    _con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\Database1.mdb;Persist Security Info=True");
    _cmd = new OleDbCommand { Connection = _con };
    _adapter = new OleDbDataAdapter(_cmd);

    dataGridView1.DataSource = GetPageRecords(1);
    }


    private DataTable GetPageRecords(int pageIndex)
    {
    DataTable dt = new DataTable();
    try
    {
    _totalpage = CalculateTotalPageCount();

    if (pageIndex == 1)
    {
    _cmd.CommandText = " select Top " + _pageSize + " * from Tbl_Personel order by CodePersenol";
    //InitializePageNavigationButtons();
    }
    else
    {
    int previousPageRecordlimit = (pageIndex - 1) * _pageSize;
    _cmd.CommandText = "select Top " + _pageSize + " * from Tbl_Personel WHERE CodePersenol not in " +
    " (select Top " + previousPageRecordlimit +
    " CodePersenol from Tbl_Personel order by CodePersenol)" +
    " order by CodePersenol";
    }
    _adapter.Fill(dt);
    _currentPageIndex = pageIndex;
    }
    catch (Exception ex)
    {
    //do what you want
    }
    finally
    {
    _con.Close();
    }
    return dt;
    }

    private decimal GetRecordCount()
    {
    _cmd.CommandText = "select COUNT(CodePersenol) from Tbl_Personel";
    if (_cmd.Connection.State != ConnectionState.Open)
    _cmd.Connection.Open();
    object objPageCount = _cmd.ExecuteScalar();
    decimal totalRecordCount = objPageCount == null ? 0 : Convert.ToDecimal(objPageCount);
    return totalRecordCount;
    }

    private decimal CalculateTotalPageCount()
    {
    decimal recordCount = GetRecordCount();
    decimal pageCount = Math.Ceiling(recordCount/_pageSize);
    return pageCount;
    }

    کانکشن رو مطابق نیازتون اصلاح کنید.

تاپیک های مشابه

  1. سوال: خطا در صفحه بندی گرید
    نوشته شده توسط f_g1348 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 04 شهریور 1393, 12:52 عصر
  2. سوال: خطا در صفحه بندی گرید
    نوشته شده توسط f_g1348 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 19 مرداد 1393, 08:45 صبح
  3. خطا در صفحه بندی گریدویو GridView Paging
    نوشته شده توسط Kurdia در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: سه شنبه 12 شهریور 1392, 14:55 عصر
  4. سوال: پیغام خطا در صفحه بندی GridView
    نوشته شده توسط majid.mp در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: دوشنبه 06 تیر 1390, 10:35 صبح
  5. خطا در صفحه بندی دیتاگرید
    نوشته شده توسط arsalansalar در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 07 اردیبهشت 1387, 14:51 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •