02-08-19, 10:29 AM
(آخر تعديل لهذه المشاركة : 02-08-19, 10:38 AM {2} بواسطة محمد اسماعيل.)
(02-08-19, 07:03 AM)ابراهيم ايبو كتب : اخي محمد الا يمكن ان يكون هناك سجل احر يحمل نفس الاسم ؟
الجواب يمكن ولكن سيحتلف عنه بالكنية او المواليد او او ويبقى الاي دي فريد لايتكرر
شيء أخر لماذا تعدل الاسم؟ انت اذا عدلت الاسم هذا يعني شخص اخر وهنا يجب اضافة جديد لاتعديل
ناحية اخرى يمكن جعل حملة التعديل بشرطين Where name=@name And id=@id تشدد زائد
ولكن ليست ذات فائدة لان المعرف هو الاي دي وهذا يكفي
بالنسبة لما قاله اخي الحبيب سعود (هو دائما يضع يده على موطن الداء) الذي يتحدث عنه بسمى الاتصال بالوضع المنفصل
اما بداتا تايل او بداتاست وبصراحة انا استخدم هذا الوضع بنسبة 95 بالمئة طبعا لكل من الوضع المنفصل والمتصل محاسن وعيوب
ان احببت ذلك تابع مع اخي سعود جزاه الله كل خير سيوضح لك الامر
نسيت ان اسألك كبف تجلب سجل الشخص لتقوم بتعديله؟
ام انك تقوم بكتابة اسم الشخص ومعلوماته ثم عند الحفظ سيتأكد ان كان هذا الاسم موجودا يقوم زر الحفظ بامر تعديل وان لم بكن موجودا
يقوم بامر حفظ ... وهذا ايضا حاطئ لماذا ؟ افرض ان لديك شخص ومسجل باسم Abdullah وقمت بكتابة الاسم لنفس الشخص وانت تقصده تماما وكتبت اسمه هكذا Abdallah فسيعتبر البرنامج ان هذا الاسم غير موجود فما رأيك
لذلك قبل اي تعديل يجب جلب السجل المراد التعديل عليه
دمت بخير اخي محمد
موضوع الايكون هناك سجل اخر يحمل الاسم يعتمد علي ذاكرة المستخدم وتركيزة لان للاسف المستخدم بيستسهل وذاكرة صفر في كل الاحوال
موضوع التعديل للاسم فقط حصل كتير معايا في برامج بسيطة يدخل في ذاكرة المستخدم اسمين معا ويختار واحد بدل التاني ويرجع يعدل علي الاثنين لاختلاف ارصدة كل واحد منهم
الحل بالنسبة ليا هيكون كالاتي نفس كل شيء ماعدا جملة الاستعلام هيكون في شرط الايساوي الاسم لايدي الصف الحالي
كود :
fillDATASET(Me, DSDETAILSFILA, "CLIENT_TB", "SELECT CLIENT_ID,CLIENT_NAME FROM CLIENT_TB WHERE CLIENT_NAME = '" & TEXT_NAME.Text.Trim() & "' AND CLIENT_ID<>" & LAB_IDVAL.Text & " ")
If Not DSDETAILSFILA.Tables("CLIENT_TB").Rows.Count > 0 Then
Dim com As New OleDbCommand("UPDATE CLIENT_TB SET CLIENT_NAME=@CLIENT_NAME WHERE CLIENT_ID =@CLIENT_ID", con)
com.Parameters.AddWithValue("@CLIENT_NAME", TEXT_NAME.TEXT)
com.Parameters.AddWithValue("@CLIENT_ID", LAB_IDVAL.Text)
con.Open()
com.ExecuteNonQuery()
con.Close()
Exit Sub
Else
MsgBox("الاسم مكرر سابقا يجب تغير الاسمالحالي او تعديلة ")
End Ifانا حطيت الكود عشان الجميع يستفيد منة
بشكركم جميعا كل الشكر لك ولاخي سعود علي نصيحتة الغالية
سجل الشخص المعدل نفس كود الاستعلام مع الطريقة دية لكل تيكست
كود :
' من قاعدة البيانات عند عدم وجود الاعمدة كاملة بالداتاجريد نفسة
LAB_IDVAL.Text = DSDETAILSFILA.Tables("CLIENT_TB").Rows(0)("CLIENT_ID").ToString
' من الداتاجريد مباشرة
indx = DataGridView1.SelectedRows(0).Index
LAB_IDVAL.Text = DataGridView1(1, indx).Value.ToString()الكود سريع ومفيش مشاكل نهائي معايا بالرغم من استخدامي الداتاتابل بس عادي مش بهتم

