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

الtable و اسناده ل dataGrid وعملية التحديث

مغلق
بدأه turki_ في 1 أكتوبر 2006 · 8 رد · 1,051 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته الشهر عليكم مبارك يا اخوان اسئل الله ان يجعلنا واياكم من عتقائه من النار

اخواني انا اشتغل على مشروع وعلى وشك الانتهاء منه لكن واجهتني عقبتين اسئل الله ان يسهلها

السؤال الاولى :

عندي صفحه تحتوي على اكثر من textBox اقوم بتعبئتها ثم اقوم بضغط على button يقوم بإضافة هذه المعلومات التي حصلت عليها من اكثر من textBox الى table عن طريق الكود ثم اقوم بإسناد هذا ال table الى datagrid لكي تعرض هذا المعلومات في datagrid على شكل row

مثل هذا المثال :

Private Function MakeTable() As DataTable
 Dim Dt As New DataTable()
 Dt.Columns.Add(New DataColumn("Name", GetType(String)))
 Dim Dr As DataRow = Dt.NewRow()
 Dr("Name") = "أحمد"
 Dt.Rows.Add(Dr)


 Return Dt
End Function

ثم اقوم بإسنادها الى dataGrid مثل كذا

Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

   DataGrid1.DataSource = MakeTable()
   DataGrid1.DataBind()

 End Sub

المشكله هــــــــــــــــــــي: عند عملية الاضافة مرة اخرى تعرض لي آخر معلومات اضفتها اي لا يظهر لي الا row واحد هو اخر واحد اضفته اما row القديم لايظهر لي يمسح انا اريد ان يعرض لي rows القديمة والجديد ه.

=============================

السؤال الثاني :

انا عندي قاعدة بيانات اسمها secure تحتوي اسم المستخدم والرقم السري وذلك بأستخدام ال sql طبعا قاعدة البيانات هذه عملتها لكي اعطي صلاحيه للمستخدم للمرور للصفحة الاخرى بعد التأكد من الرقم السري

المشكلة هــــــــــــــــي: انه عند مرور المستخدم للصفحة الاخرى والقيام بأي عملية مثلا اضافه او حدف او تعديل علي ان اضيف اسمه لكل عملية يقوم بها بحيث يدل على المستخدم الذي قام بالعميلة ( كيف اقوم بجلب اسم المستخدم من صفحة ال log_in الذي دخل منها الى الصفحات الاخرى بحيث اقوم بحفظ اسمه مع كل عمليه)

=============================

علما اني سئلتكم وطلبت مساعدتكم بعد البحث في المنتدى والمحاوله لحل المشلك لكني لم استطع

ارجوا منكم مساعدتي وجزاكم الله خير الجزاء

تم تعديل هذه المشاركة بواسطة turki_ في 1 أكتوبر 2006 في 01:11

#2

من طبيعة سؤالك اري انك قادم للتو من البرمجة لليوندوز الي كتابة تطبيقات الويب وهنا تحدث المشكلة لانهم مختلفين في بعض الاشياء التي يجب ان تراعيها

وهي كالاتي

1-الصفحة لها دورة حياة وتنتهي مع اول اعادة للسرفر(تحميل الصفحة مرة اخري) وتحدث في الغالب عند حدوث حدث يستدعي تنفيذ الكود في السرفر

2- نظرا للاختلاف الاول فانة كل المتغيرات التي في الصفحة يعاد انتاجها مرة اخري وتكون خالية من القيم السابقة

اجابة السؤال الاول

الغلطة في الكود انك تعرف الداتا تيبل داخل الفنكشن وهنا كل مرة تستدعي فيها الفنكشن يتم انشاء كائن جديد لايحمل المعلومات السابقة التي ادخلتها حيث ان الكائنات التي تعرفها دخل الفنكشن تنتهي وتذهي ادراج الرياح عند انتهاء استدعائها لذلك في كل مرة تستدعي فيها الفنكشن وههنا في حالة تحميل الصفحة سيتم محو الكائن القديم وانتاج واحد اخر ويحمل القيمة احمد فقط

الحل عرف متغيراتك خارج جسم الفنكشن واسند القيم داخلها فقط

اجابة السؤال الثاني :

استخدم الكائن (Session)

هذ الكائن هو يمكنا من حفظ قيم المتغيرات حتي عند اعادة تحميل الصفحة حيث يمكنك اسناد قيمة الاسم من صفحة الدخول والحصول علية في اي صفحة اخري

انا اسف لاني لم اوضح كلامي واجابتي بالكود لاني اعمل علي السي شارب

#3

moza.mix

جزاك الله خير الجزء على تفاعلك مع موضوعي والرد عليه واسئل الله ان يجعل ذلك في ميزان حسناتك

اما عن : اني قادم للتو من البرمجة لليوندوز الي كتابة تطبيقات الويب فهذا صحيح واعترف بذلك

اما جوابك الاول: فهذا فعلا ما فكرت به وقمت بإنشاء جدول جديد خارج function وكذالك انشاء row جديده خارج الfunction وقمت بعملية الاضافة وتعبئة الجدول عن طريق الضغط على الbutton لكن بقيت المشكله كما هي ولم يتغير والله اي شي اذا كانت جت معك با C# ياليت تضع الكود.... وانا إن شاء الله راح افهمه......

اما جوابك الثاني: كيف نقوم بتعريف الكائن session عن طرق الكود او عن طريق خصائص textbox

كل الشكر لكـــــــــــــ واسئل الله ان يجعل لك من كل ضيق مخرج ومن كل هم فرج

#4

السؤال الثاني عرفته ولقيته في المنتدى

ابي الله يرضى عليكم السؤال الاول هذه العقبة الوحيدة في مشروعي لكي ينتهي اريد الجواب

انتظر الرد هل من مجيب

#5

بمعنى أن هذا السطر

Dim Dt As New DataTable()

بدلاً من وضعه داخل الدالة MakeTable ، تحذفه وتعرفه على مستوى الصفحة ككل ، أي أسفل هذا السطر في بداية صفحتك

 Inherits System.Web.UI.Page
#6

محمد النحراوي

كل الشكر لكــ على اجابتك واسئل الله ان يجعل لك من كل ضيق مخرج ومن كل هم فرج

اخي انا قمت بتعريف الجدول على مستوى الصفحة ككل كما قلت لكن مازالت المشكله اذا اضفت row جديد ل table

وقمت بإسناده لل datagrid فإنه يعرض لي الrow الجديد فقط ولايعرض لي rows القديمة وانا اريد ان يعرض لي كل rows التي قمت بتعبئتها في الجدول.....

تم تعديل هذه المشاركة بواسطة turki_ في 2 أكتوبر 2006 في 23:30

#7

اخواني أنتظر الرد منكم

#8

أخي العزيز turki

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

أفضل حل لك هو الآتي :

- أن تقوم بعمل إختيار لكل الrow في الجدول بعد عملية الإضافة عن طريق جملة select * from وتعبئتها في data set ومن ثم إسناده للdatagrid

وستجد النتيجة 100 %

- بالنسبة لتعريف الSession وتعريفه كالتالي:

Session.add("UN",txt_user.text)

حيث UN هو متغير يحوي القيمة الموجودة في txt_user.text

أما استدعاء هذا المتغير من أي صفحة فهو:

Session.item(UN)

وهنا تستطيع الإستفادة من هذه القيمة فيما تريده

فمن يباري أباحفص وسيرته *** أو من يحاول للفاروق تشبيها

#9

كل الشكر لك اخي hafs و اسئل الله ان يجزيك خير الجزاء

فكره حلوه وراح اجربها واشوف بس لاتنسى ان ال table منشئ عن طريق الكود ماهو موجود في sqlsever

تم تعديل هذه المشاركة بواسطة turki_ في 4 أكتوبر 2006 في 21:14

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

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