السلام عليكم
عندما اريد الإدخال إلى جدول عن طريق جملة insert
مثل
(insert into table1 values (1,1,5
اريد التحقق من ان القيمة الثالثة غير مكررة في الحقل كاملا
يعني كما في المثال 5 قبل ان يتم ادخال السجل يشيك على الجدول هل فيه 5 او لا
السلام عليكم
عندما اريد الإدخال إلى جدول عن طريق جملة insert
مثل
(insert into table1 values (1,1,5
اريد التحقق من ان القيمة الثالثة غير مكررة في الحقل كاملا
يعني كما في المثال 5 قبل ان يتم ادخال السجل يشيك على الجدول هل فيه 5 او لا
هذا يأتي من تصميم قاعدة البيانات عن طريق وضع Indexes على الجداول في قاعدة البيانات عند تصميمها فإن وضعت index على حقل معين أو مجموعة من الحقول بحيث أصبح هناك شرط بعدم تكرار بيانات معينة عندها لن يتم تنفيذ جملة insert تخالف ذلك الـ Index المرتبط بالجدول
- راجع قسم قاعدة البيانات التي تستخدمها من أجل معرفة تفاصيل إنشاء Index بصورة صحيحة تلبي متطلباتك
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
شكرا لك اخي الحبيب ولكن اريد الكود برمجيا من داخل vb.net
\ انت من يجب ان يقوم بالتحقق من مناسبة القيمة قبل ان تقول باضافتها على الجدول وليس الحقل
تم تعديل هذه المشاركة بواسطة وليد مندني في 3 سبتمبر 2007 في 07:59
اقتباساريد التحقق من ان القيمة الثالثة غير مكررة في الحقل كاملا
المشكلة مرتبطة بقاعدة البيانات و ليس vb.net
بالرغم من امكانية حلها عن طريق vb.net ولكن هيكون حل غير مثالي
بالنسبة للحل في السكول
مجرد unique constrant علي الحقل المطلوب
و الموضوع الي حد ما بعيد عن ال indexes
جرب هذه الطريقة على حسب ما فهمت منك
لنفترض انك قمت بالتصريحات عن المتغيرات من قبل
قبل ما تسوي عملية الاظافة قم بالتشييك من خلال هذا الكود
SQL = "SELECT * FROM Agents where Num = '5' "
MyCon.Open()
MyCmd.Connection = MyCon
MyCmd.CommandType = CommandType.Text
MyCmd.CommandText = SQL
MyReader = MyCmd.ExecuteReader
If MyReader.Read Then
MsgBox("عفوا ان هذا الرقم مسجل من قبل لدينا" )
MyReader.Close()
MyCon.Close()
exit sub
end ifوالله اعلم
المفروض ان تستخدم الحلين وهي بوضع Index على الحقل حتى تضمن عدم حدوث التكرار (فقد يكون الادخال من برنامج غير برنامجك مثلا ) ثانيا استخدام الكود الذي تكلم عنه M.A.A.H او بالتعديل التالي البسيط عليه
SQL = "SELECT count(*) FROM Agents where Num = '5' "
MyCon.Open()
MyCmd.Connection = MyCon
MyCmd.CommandType = CommandType.Text
MyCmd.CommandText = SQL
dim sFound as integer = MyCmd.Executescalar()
If sFound>0 Then
MsgBox("عفوا ان هذا الرقم مسجل من قبل لدينا" )
else
' DO insert
end ifهذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…