الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إستعمال تقنية الـ Paging لتقسم البيانات داخل الـ Datagridview

بدأه dot.net2008 في 10 يوليو 2011 · 6 رد · 967 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أخواني الكرام ,, كيف يمكن عمل تقنية او مسألة الـ paging في السي شارب

بحيث لو كان الجدول الذي اعمل عليه select يوجد فيه أكثر من 10000 سجل

يتم تقسيم كل 100 سجل على حدة ومن ثم يظهر لي اما قائمة منسدلة او Links للتنقل بين السجلات

ارجوا ان تكون قد وضحت الفكرة ,, واي توضيح اخر انا جاهز

وشكراً ..

#2

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي


NorthwindDataContext db = new NorthwindDataContext();
int pageSize = 100;
int pageCount;
List<Order> orders = new List<Order>();


private void Form1_Load(object sender, EventArgs e)
{
orders= db.Orders.ToList();
pageCount=orders.Count%pageSize==0?orders.Count/pageSize:orders.Count/pageSize+1;
cmbPages.Items.AddRange(Enumerable.Range(1, pageCount).Cast<object>().ToArray());
cmbPages.SelectedIndex = 0;
}

private void cmbPages_SelectedIndexChanged(object sender, EventArgs e)
{
dataGridView1.DataSource = orders.Skip((Convert.ToInt32(cmbPages.Text)-1)*(pageSize)).Take(pageSize).ToList();
}

طبعا عملت قائمة منسدلة للتنقل بين الصفحات, والكود يستخدم تقنية الـ LINQ ليقرأ من الجدول Orders من قاعدة البيانات المشهورة Northwind

WindowsFormsApplication1.zip

.:: Wish to become better and better ::.

#3

شكراً أخي الكريم ,, ظهر لي الخطأ التالي

post-220002-083793300 1310377641_thumb.j

وشيء اخر أخي الكريم ,, انا بالبرنامج الخاص بي أستخدم قاعدة بيانات من نوع MySQL مرفوعة على سيرفر على الانترنت ,, هل يوجد أي اختلاف في الكود

المرفقات
Untitled.jpg
#4

السلام عليكم ورحمه الله وبركاته

اخي هذا الخطأ وارد!! لهذا اشرت لك سابقا اني استخدم قاعدة البيانات Northwind, يمكنك تحميلها وسيشتغل معاك البرنامج, اما اذا كانت قاعدة البيانات في جهازك او في جهاز اخر الفارق ما هو في الـ ConnectionString

.:: Wish to become better and better ::.

#5

طيب أخي الكريم لدي فكرة اخرى ,, لنفرض اني قمت بتعريف الكلاس التالي

class listitem
    {

        private string _text = string.Empty;

        private int _value1;
        private int _value2;

        public listitem(string text, int value1,int value2)
        {
            _text = text;
            _value1 = value1;
            _value2 = value2;
        }

        public string text
        {
            get { return _text; }
            set { _text = value; }
        }

        public int value1
        {
            get { return _value1; }
            set { _value1 = value1; }
        }


        public int value2
        {
            get { return _value2; }
            set { _value2 = value2; }
        }
        public override string ToString()
        {
            return _text;
        }

    }

ومن ثم قمت بالاتصال بقاعدة البيانات وقمت بعمل كائن command لتنفيد استعلام داخل قاعدة البيانات

MySqlCommand  cmd = new MySqlCommand ("select count(*) from users",con);
            con.Open();

            int x = (Convert.ToInt32(cmd.ExecuteScalar())/2);
            con.Close();
            for (x=1 ; x <= 2; x++)
            {
                comboBox1.Items.Add(new listitem(Convert.ToString(x),x-1,x*5));
            }

وفي قمت بكتابة الكود التالي ف حدث الكومبو بوكس

       private void comboBox1_TextChanged(object sender, EventArgs e)
        {

            MySqlDataAdapter da = new MySqlDataAdapter("select * from users", con);
            DataTable  dt = new DataTable();
            dt.Clear();
            con.Open();
            da.Fill(((listitem)comboBox1.SelectedItem).value1, ((listitem)comboBox1.SelectedItem).value2,dt);
             dataGridView1.DataSource = dt;
            con.Close();
        }

شو الخطأ في الكود التالي ,,

#6

السلام عليكم ورحمه الله وبركاته

اخي ايش المشكلة في الكود السابق؟!!

.:: Wish to become better and better ::.

#7

مرحبا عمي أيمن ,, ان شاء الله يفيدك هالدرس :)

/index.php?showtopic=245270

تم تعديل هذه المشاركة بواسطة lo2i في 11 يوليو 2011 في 23:17

.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…