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

أسئلة عن DataGrid & DataSet

مغلق
بدأه خـالد في 10 نوفمبر 2004 · 5 رد · 1,592 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

3 أسئلة عن DataGrid & DataSet

البرنامج عبارة عن استقبال طلبات التوظيف في شركة .. يقوم طالب الوظيفة بتعبئة الطلب و تسجل في قاعدة البيانات ، ومن ضمن بياناته الدورات التي حصل عليها ..

فكرتي هي أن يسجل معلومات الدورة ثم يضغط "اضافة" ليتم اضافتها الى DataSet خاصة بالدورات ويتم عرض دوراته في DataGrid ومن خلال الداتاقريد يمكنه أن ويعدل ويحذف .. وبعد الانتهاء من تعبئة الطلب بالكامل بما فيها المعلومات الشخصية و الخبرات الخ .. يضغط على زر Submit والذي يقوم بتسجيل كل المعلومات في قاعدة البيانات.

1- الحاصل عندي الآن .. بعد الضغط على زر "تعديل" ينتقل الى Edit mode ويقوم بتعديل الحقول كما يريد ثم يضغط على "تحديث" .. السؤال : كيف يمكن تحديث هذه البيانات في الداتاسيت فقط بدون تحديثها عمل اي شيء على الداتابيس ؟

2- في وضع التعديل Edit mode .. تظهر الداتاقريد بشكل كبير وغير مناسب .. كيف يمكن التحكم في حجم الداتاقريد عند التعديل أو التحكم في الحقول نفسها ؟ (( الصورة المرفقة توضح شكل الداتاقريد في وضع التعديل))

3- كيف يمكن عرض البيانات في الداتاقريد بناء على متغيرات معينة مثلا رقم الطلب = 2 ؟

أعتقد أنها باستخدام PARAMETER لكن أريد الطريقة بالضبط لأني حاولت وما ضبطت معي .

post-129-1100107983_thumb.jpg

#2
اقتباس
- الحاصل عندي الآن .. بعد الضغط على زر "تعديل" ينتقل الى Edit mode ويقوم بتعديل الحقول كما يريد ثم يضغط على "تحديث" .. السؤال : كيف يمكن تحديث هذه البيانات في الداتاسيت فقط بدون تحديثها عمل اي شيء على الداتابيس ؟

لا تقم بتحديث الـ DataAdapter، الغي هذا السطر من كود زر التحديث:

SqlDataAdapter.Update(ds)

اقتباس
2- في وضع التعديل Edit mode .. تظهر الداتاقريد بشكل كبير وغير مناسب .. كيف يمكن التحكم في حجم الداتاقريد عند التعديل أو التحكم في الحقول نفسها ؟ (( الصورة المرفقة توضح شكل الداتاقريد في وضع التعديل))

عدل خاصية PreferredColumnWidth حسب احتياجاتك، حيث انها معدلة افتراضياً بقيمة 75

اقتباس
3- كيف يمكن عرض البيانات في الداتاقريد بناء على متغيرات معينة مثلا رقم الطلب = 2 ؟

للأسف لم أفهم السؤال، أرجو أن توضح قليلاً..

رأس الحكمة الإيمان بالله

#3
اقتباس
- كيف يمكن عرض البيانات في الداتاقريد بناء على متغيرات معينة مثلا رقم الطلب = 2 ؟

أعتقد أنها باستخدام PARAMETER لكن أريد الطريقة بالضبط لأني حاولت وما ضبطت معي .

أخي ان كان ما فهمته منك صحيحا ..

فما عليك الا ان تقوم بوضع textBox ليتم من خلاله تمرير المتغير من قبل المستخدم .. وزر لتنفيذ الاستعلام ..

وتكتب كود مشابه لما يلي :

private string selectCmd= "SELECT EmployeeID , LastName , FirstName FROM Employees";  

private void Page_Load(object sender, System.EventArgs e)
  {
 	 if(! Page.IsPostBack)
 	 {
    bindGrid(selectCmd);
 	 }
  }


void bindGrid(string cmd)
  {
 	 SqlConnection con= new SqlConnection("data source=localhost;initial catalog=Northwind;integrated security=true");
 	 SqlDataAdapter DA= new SqlDataAdapter(cmd,con);
 	 DataSet ds=new DataSet();
 	 DA.Fill(ds);
 	 DataGrid1.DataSource=ds;
 	 this.DataGrid1.DataBind();
  }


private void Button1_Click(object sender, System.EventArgs e)
  {
 	 if(this.TextBox1.Text!="")
 	 {
    string where_str=" where EmployeeID = '"+ TextBox1.Text + "'";
    string cmd=selectCmd+where_str;
    bindGrid(cmd);
 	 }
 	 else
 	 {
    bindGrid(selectCmd);
 	 }


  }

واليك ملف مرفق بالمثال ..

parameters.zip

#4

لكم كل الشكر والتقدير ..

محمد عبدالعليم .. أقصد من السؤال :

مثلاً .. عندي جدول لطلبات التوظيف . يستطيع المستخدم أن يدخل على البرنامج ويختار العمر 25 مثلاً .. فأقوم باظهار داتاقريد تحتوي على الأشخاص الذين ينطبق عليهم الشرط واعمارهم فوق 25 . أو مثلاً يختار تخصص "الكمبيوتر" فأقوم باظهار داتاقريد فيها الأشخاص الذين تخصصهم "كمبيوتر" .

النقطة المهم : أنا أريد عمل هذا عن طريق الداتاسيت نفسها . وليس بكتابة الكود .

فلسطينية .. لك جزيل الشكر

وهل تعرفين طريقة أخرى باستخدام الداتاسيت نفسها ؟

أنا ودي أجرب أستخدم الداتاسيت نفسها في عمل هذه الفكرة .. اذا ما قدرت راح استخدم الكود اللي كتبته الاخت فلسطينية .

تحياتي

#5

اخي عمل ذلك عن طريق الداتا سيت ليس منصوح به لانك بذلك تطلب من الداتا سيت ان ترجع لك كل السجلات ثم تقوم بفلترتها بعد حفظها في الذاكرة للحصول على ما تريد وهذا سيثقل قاعدة المعلومات والذاكرة بينما عمل ذلك من خلال ارسال المدخلات (البارامتر) سيرجع لك البيانات المطلوبة فقط وينقص عدد السجلات التي تحتاج حفظها في الذاكرة

عموما طريقة الفلترة هي:

MyDataSet.Tables[0].DefaultView.RowFilter = "Age>=25";
;MyGrid.DataSource = MyDataSet.Tables[0].DefaultView

بالنسبة لعرض السطر للتعديل فانني ساعرض طريقتين لتجنب هذه المشكلة في المرة القادمة ان شاء الله.

تم تعديل هذه المشاركة بواسطة madani في 15 نوفمبر 2004 في 00:35

#6

أشكرك جزيل الشكر .. ونصيحتك وضحت وأخذتها في الحسبان

هذا الموضوع مغلق.

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