تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل على كود حفظ بدون تكرار
#1
هل يتفضل أحد الأساتذة الكرام بالتعديل على كود الحفظ ؟
المطلوب:
عدم تكرار حفظ المــادة الدراسية للفصل الدراسي الواحد مرتين مثلاً:
الصف: الأول -  الفصل الدراسي: 1  -  المـادة: التربية الإسلامية
الصف: الأول -  الفصل الدراسي: 1-  المـادة: التربية الإسلامية

والصحيح:
الصف: الأول -  الفصل الدراسي: 1  -  المـادة: التربية الإسلامية
الصف: الأول -  الفصل الدراسي: 2-  المـادة: التربية الإسلامية
وهكذا ... مع بقية الصفوف الدراسية والفصول والمواد .

بدلاً من حفظ المادة مرتين فإنه يتم تحديث البيانات
علماً بأن إدخال البيانات عن طريق الداتا قريدفيو

كود :
           Try
               If dgv1.Rows.Count = 0 Then Exit Sub
               If Con.State = ConnectionState.Closed Then Con.Open()
               For i As Integer = 0 To dgv1.Rows.Count - IIf(dgv1.AllowUserToAddRows, 2, 1)
                   Using cm As New OleDb.OleDbCommand("", Con)
                       cm.Parameters.Clear()
                   cm.CommandText = "insert into TBL_result(stid,studentid,studentname,clasid,setno2,SemesterID,courseid,n1,n2,n3) Values (@stid,@studentid,@studentname,@clasid,@setno2,@SemesterID,@courseid,@n1,@n2,@n3)"
                   cm.Parameters.AddWithValue("@stid", AutoNum("TBL_result", "stid")).DbType = DbType.String
                   cm.Parameters.AddWithValue("@studentid", dgv1.Rows(i).Cells(0).Value)
                       cm.Parameters.AddWithValue("@studentname", dgv1.Rows(i).Cells(1).Value)
                       cm.Parameters.AddWithValue("@clasid", dgv1.Rows(i).Cells(3).Value)
                       cm.Parameters.AddWithValue("@setno2", dgv1.Rows(i).Cells(4).Value)
                       cm.Parameters.AddWithValue("@SemesterID", CombSemester.SelectedValue).DbType = DbType.String
                       cm.Parameters.AddWithValue("@courseid", CombCoursesID.Text).DbType = DbType.String
                       cm.Parameters.AddWithValue("@n1", dgv1.Rows(i).Cells(7).Value)
                       cm.Parameters.AddWithValue("@n2", dgv1.Rows(i).Cells(8).Value)
                       cm.Parameters.AddWithValue("@n3", dgv1.Rows(i).Cells(9).Value)

                       cm.ExecuteNonQuery()

                   End Using

               Next

               If Con.State = ConnectionState.Open Then Con.Close()

               MsgBox("تم رصد درجــات الصــف   : " & " " & listClas.Text & Chr(13) & " لمــادة : " & CombCourses.Text & " * بنجــاح " & "", MsgBoxStyle.Information, "الإجـــراء")

           Catch ex As Exception
               'MsgBox("الرجـــاء ... إدخـال جميع الدرجــات ", MsgBoxStyle.Critical, "تنبيـــه ")
           End Try

           If dgv1.Rows.Count = 0 Then Exit Sub
           For i As Integer = 0 To dgv1.Rows.Count - IIf(dgv1.AllowUserToAddRows, 2, 1)
               dgv1.Rows(i).Cells(7).Value = ""
               dgv1.Rows(i).Cells(8).Value = ""
               dgv1.Rows(i).Cells(9).Value = ""

           Next
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#2
إذا كان هذا غير مشروعك الأول 
قم بإرفاق المشروع للنظر فيه ..
..
(بحسب قرائتي للكود هذا مختلف عن أكواد مشروعك الأول :
رأيت في هذا الكود أنك تخزن في جدول الامتحانات كل تفاصيل الطالب ولا يرتبط بأي جدول آخر
فإن كان كذلك : فهنالك طريقة بسيطة لحفظ التعديلات ..  
وإن كان غير ما قلت،، فإن هذه الطريقة لن تنفع مع مشروعك (ولا داعي لأن ترفق مشروعك) ) ..
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة:
#3
(16-03-23, 06:45 AM)Taha Okla كتب : إذا كان هذا غير مشروعك الأول 
قم بإرفاق المشروع للنظر فيه ..
..
(بحسب قرائتي للكود هذا مختلف عن أكواد مشروعك الأول :
رأيت في هذا الكود أنك تخزن في جدول الامتحانات كل تفاصيل الطالب ولا يرتبط بأي جدول آخر
فإن كان كذلك : فهنالك طريقة بسيطة لحفظ التعديلات ..  
وإن كان غير ما قلت،، فإن هذه الطريقة لن تنفع مع مشروعك (ولا داعي لأن ترفق مشروعك) ) ..
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

بارك الله فيك أخي الكريم وأستاذي القدير طه.
لا أدري بما أجيب؛ لأن السؤال الذكي يجعلك تفكر ألف مرة قبل الإجابة لتكون على قدر السؤال.
وبصراحة المشروع ليس بجديد فهو قديم؛ لكنني مع كثرة الأفكار وازدحامها تلخبطت عندي الخريطة.
كما أنني لست براض عن هذا المشروع غير أنه حل لي إشكالية الحفظ حسب الطريقة التي كنت أفضلها وتصلح لبرامج رصد الدرجات.

أعود إلى المشكلة وأقول سارفق لك المشروع ويمكنك أن ترى ما هى الطريقة المناسبة لتحديث الدرجات .
لأن المشكلة التي اواجهها هى: عند تسجيل درجات مادة معينة واستدعاءها مرة أخرى في الداتا قريدفيو فإنك لو ضغطت زر الحفظ فسوف تحفظ مرة أخرى وهذا تكرار ؛ بل هو خطأ فاحش.

المفروض في هذا الحالة يتم تحديث الدرجات فقط (سواء تم تغيير الدرجات أو بقيت كما هى) وليس تكرار حفظها للسمستر الواحد ... هذا الذي أريده من هذا الشرح الطويل الممل.

أرجو أنني قد وفقت في إيصال المعلومة بشكل صحيح أستاذ طه.
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#4
الطريقة التي أتحدث عنها :
- أن ما ستعرضه ضمن الداتا جريد مسحوبة من جدول واحد ليس له أي علاقة تربطه بأي جدول آخر..
- يعني جميع بياناته موجودة في (جدول الدرجات) أساساً، (مش راح تضيفها بعد عملية الحفظ)..
  مثلا : رقم الطالب، اسم الطالب، صف الطالب، شعبة الطالب، السنة الدراسية، اسم المادة ، الفصل الدراسي،  ... إلخ.
- فقط ما ستعمله هو : 
  • عرض بيانات الطلاب مع درجاتهم الموجودة أساسًا في الجدول(والتي هي إفتراضياً  (0) أو (-)).
  • تعديل الدرجات من القيمة الموجودة إلى رقم الدرجة التي يتسحقها الطالب.
  • حفظ العملية.
- - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - -
أما إن كانت البيانات التي ستعرض في الداتا جريد مسحوبة من جدولين فأكثر فهذه الطريقة لن تنفع معك.
إن لم يكن كذلك فهذه الطريقة التي أتحدث عنها لن تنفع مع مشروعك،
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: مصمم هاوي
#5
(16-03-23, 04:45 PM)Taha Okla كتب : الطريقة التي أتحدث عنها :
- أن ما ستعرضه ضمن الداتا جريد مسحوبة من جدول واحد ليس له أي علاقة تربطه بأي جدول آخر..
- يعني جميع بياناته موجودة في (جدول الدرجات) أساساً، (مش راح تضيفها بعد عملية الحفظ)..
  مثلا : رقم الطالب، اسم الطالب، صف الطالب، شعبة الطالب، السنة الدراسية، اسم المادة ، الفصل الدراسي،  ... إلخ.
- فقط ما ستعمله هو : 
  • عرض بيانات الطلاب مع درجاتهم الموجودة أساسًا في الجدول(والتي هي إفتراضياً  (0) أو (-)).
  • تعديل الدرجات من القيمة الموجودة إلى رقم الدرجة التي يتسحقها الطالب.
  • حفظ العملية.
- - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - -
أما إن كانت البيانات التي ستعرض في الداتا جريد مسحوبة من جدولين فأكثر فهذه الطريقة لن تنفع معك.
إن لم يكن كذلك فهذه الطريقة التي أتحدث عنها لن تنفع مع مشروعك،

بارك الله فيك أخي الكريم وأستاذي القدير طه على توجيهاتكم ونصائحك المفيدة.
وسأرفق .مثالا يوضح الأمر إن شاء الله عند عودتي للمنزل.
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#6
هذا هو مثال مرفق ولو ادخلت درجات مادة معينة لنفس الفصل وحفظتها ثم اخترتها مرة أخرى مع اختيار نفس الفصل لتكرر الحفظ
ملاحظة: أقصد بالفصل الدراسي تقسيم المدة الدراسية على فصلين دراسيين (Semester) ولا أقصد به الصف الدراسي (Clas)

المطلوب: لو تم حفظ مادة معينة لفصل معين ألا يتكرر الحفظ لنفس المادة والفصل؛ بل يتم تحديث البيانات فقط ، ويكون في زر واحد لو أمكن ذلك

مع العلم بأن البيانات مسحوبة من جدول الدرجات TBL_result أثناء التحديث

ارجــو أن يكونَ التوضيح مفهوم تماماً


.rar   Students_result.rar (الحجم : 1.75 م ب / التحميلات : 30)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة:
#7
اخي الكريم الحفظ يتكرر شيء طبيعي لان الكود هو : insert  وليس update
هل تضيف صفوف جديدة الى dgv1  وايضا تستخدم تعديل؟

ممكن تعمل دالة Function  تستقبل وسائط تستعلم عنها يفترض ان لا تتكرر حتى يتم التحديث update بدلا عن  insert 
ماهي الاعمدة في جدول TBL_result اللتي لا تقبل التكرار.
و كلنا ننتظر اخوتنا الفضلاء لتقديم الحل الامثل.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: مصمم هاوي
#8
(17-03-23, 11:43 PM)سعود كتب : اخي الكريم الحفظ يتكرر شيء طبيعي لان الكود هو : insert  وليس update
هل تضيف صفوف جديدة الى dgv1  وايضا تستخدم تعديل؟

ممكن تعمل دالة Function  تستقبل وسائط تستعلم عنها يفترض ان لا تتكرر حتى يتم التحديث update بدلا عن  insert 
ماهي الاعمدة في جدول TBL_result اللتي لا تقبل التكرار.
و كلنا ننتظر اخوتنا الفضلاء لتقديم الحل الامثل.

جزيت خيرا وكفيت شرا أستاذنا
لا يمكن أن تتكرر درجات المادة للفصل الدراسي الواحد
مثلا:
مادة التربية الإسلامية للصف الأول * للجزئي الأول.
فلا يمكن أن تتكرر درجات هذه المادة مرة أخرى لنفس الجزئي... وهكذا
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود , سعود , سعود
#9
(18-03-23, 01:21 AM)سعود كتب :
(18-03-23, 12:19 AM)مصمم هاوي كتب : جزيت خيرا وكفيت شرا أستاذنا
لا يمكن أن تتكرر درجات المادة للفصل الدراسي الواحد
مثلا:
مادة التربية الإسلامية للصف الأول * للجزئي الأول.
فلا يمكن أن تتكرر درجات هذه المادة مرة أخرى لنفس الجزئي... وهكذا

مثل ما قلت سابقا اني لا افهم المسميات :
انت ذكرت :
إقتباس :مادة التربية الإسلامية للصف الأول * للجزئي الأول.
فاين هي في الجدول ؟ ما مسمياتهاSmile

هل يمكن ان تلون على الاعمدة او تذكر اسماء التي لا تريد تكرارها؟!

1: جدول الصفوف الدرسية =  TBL_Clas حيث يتم تعبئة الليست بوكس بأسماء الصفوف وهى: الأول - الثاني - الثالث - الرابع .... إلخ
2: جدول  الفصول الدراسية =  TBL_Semester حيث يتم تعبئة الكومبوكس ببيانات الجدول: الجزئي الأول - الجزئي الثاني -  الفترة الأول - الفترة الثانية ..... إلخ
3: جدول المواد الدراسية = TBL_courses  عندما يتم اختيار الصف الدراسي يتم تعبئة كومبوكس المواد الدراسية (CombCourses)
4: جدول الدرجات = TBL_result ويحتوي على الحقوق التالية:
* حقل stID ترقيم تسلسلي
* حقل studentID  رقم الطالب
* حقل studentname  اسم الطالب
* حقل ClasID رقم الصف الدراسي
* حقل setno2  رقم المراقبة (المقصود الرقم السري)
* حقل SemesterID  رقم الفصل الدراسي
* حقل courseID  رقم المادة الدراسية
* الحقول (N1  -  N2  -  N3) حقول الدرجــات

المقصــود
الآن عند حفظ الدرجــات يجب ألا تتكرر  رقم المـادة وهى  (courseID )  لنفس الفصل وهو (SemesterID ) وذلك لكل طالب (studentname  )
وللتوضيح أكثر أنظر الصورة المرفقة

   

(18-03-23, 01:07 AM)عضو جديد كتب :
(17-03-23, 11:43 PM)سعود كتب : اخي الكريم الحفظ يتكرر شيء طبيعي لان الكود هو : insert  وليس update
هل تضيف صفوف جديدة الى dgv1  وايضا تستخدم تعديل؟

ممكن تعمل دالة Function  تستقبل وسائط تستعلم عنها يفترض ان لا تتكرر حتى يتم التحديث update بدلا عن  insert 
ماهي الاعمدة في جدول TBL_result اللتي لا تقبل التكرار.
و كلنا ننتظر اخوتنا الفضلاء لتقديم الحل الامثل.

(18-03-23, 12:19 AM)مصمم هاوي كتب :
(17-03-23, 11:43 PM)سعود كتب : اخي الكريم الحفظ يتكرر شيء طبيعي لان الكود هو : insert  وليس update
هل تضيف صفوف جديدة الى dgv1  وايضا تستخدم تعديل؟

ممكن تعمل دالة Function  تستقبل وسائط تستعلم عنها يفترض ان لا تتكرر حتى يتم التحديث update بدلا عن  insert 
ماهي الاعمدة في جدول TBL_result اللتي لا تقبل التكرار.
و كلنا ننتظر اخوتنا الفضلاء لتقديم الحل الامثل.

جزيت خيرا وكفيت شرا أستاذنا
لا يمكن أن تتكرر درجات المادة للفصل الدراسي الواحد
مثلا:
مادة التربية الإسلامية للصف الأول * للجزئي الأول.
فلا يمكن أن تتكرر درجات هذه المادة مرة أخرى لنفس الجزئي... وهكذا

بل فهمت كلام اخي سعود ولكن السؤال:
كيف يمكن إضافة البيانات إذا لم أعمل insert ؟

   

لاحظ الصـــورة أرقام الفصول الدراسية SemesterID وأرقام المواد الدراسية courseID
لا يمكن بأي حال من الأحوال أن يمتحن طالب في الفصل رقم 1 في مادة رقم 1 مثلاً امتحانين وهكذا مع المواد رقم: 2.3.4.5.6.7
ولا يمكن كذلك بأي حال من الأحوال أن يمتحن طالب في الفصل رقم 2 في مادة رقم 1 مثلاً امتحانين وهكذا مع المواد رقم: 2.3.4.5.6.7
وهكذا مع بقية أرقام الفصول الدراسية

ملاحظــة: لكل فصل دراسي امتحانين جزئي ونهاية فصل
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود
#10
انظر التعديل غدا إن شاء الله تعالى وأخبرك النتيجة.
وبارك الله فيك وجزاك كل خير أخي الحبيب على حسن تعاونك معي.
وأسأل الله أن يجعله في ميزان حسناتك
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: سعود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مساعدة تعديل على الكود ZEEN4ZEEN 2 208 08-10-25, 02:20 PM
آخر رد: salamandal
  سبب تكرار رسالة التنبيه مصمم هاوي 4 430 03-05-25, 02:05 PM
آخر رد: مصمم هاوي
  تعديل كود تحديث البيانات مصمم هاوي 1 782 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
  تعديل على استدعاء الدرجات حسب الاختيار مصمم هاوي 11 989 15-04-25, 06:16 PM
آخر رد: princelovelorn
  ارجو تعديل الكود بواستطة الاجراء المخزن new_programer 3 673 03-04-25, 02:44 PM
آخر رد: princelovelorn
  تعديل مسار مكان حفظ النسخة الاحتياطية مصمم هاوي 6 800 02-03-25, 01:06 PM
آخر رد: atefkhalf2004
  محتاج تعديل على كود الحذف new_programer 2 652 17-02-25, 06:50 PM
آخر رد: new_programer
  مساعدة في كود عدم تكرار استدعاء نفس السؤال من المصفوفة fireswored1 5 541 10-02-25, 05:11 PM
آخر رد: fireswored1
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 619 05-02-25, 01:51 AM
آخر رد: new_programer
  طلب تعديل كود جلب اسم الملف ومساره مصمم هاوي 4 530 25-01-25, 12:45 AM
آخر رد: مصمم هاوي

التنقل السريع :


يقوم بقرائة الموضوع: