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

التحقق من عدم تكرار القيمة

مغلق
بدأه رويال في 29 أغسطس 2007 · 7 رد · 1,513 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندما اريد الإدخال إلى جدول عن طريق جملة insert

مثل

(insert into table1 values (1,1,5

اريد التحقق من ان القيمة الثالثة غير مكررة في الحقل كاملا

يعني كما في المثال 5 قبل ان يتم ادخال السجل يشيك على الجدول هل فيه 5 او لا

#2

هذا يأتي من تصميم قاعدة البيانات عن طريق وضع Indexes على الجداول في قاعدة البيانات عند تصميمها فإن وضعت index على حقل معين أو مجموعة من الحقول بحيث أصبح هناك شرط بعدم تكرار بيانات معينة عندها لن يتم تنفيذ جملة insert تخالف ذلك الـ Index المرتبط بالجدول

- راجع قسم قاعدة البيانات التي تستخدمها من أجل معرفة تفاصيل إنشاء Index بصورة صحيحة تلبي متطلباتك

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#3

شكرا لك اخي الحبيب ولكن اريد الكود برمجيا من داخل vb.net

#4

\ انت من يجب ان يقوم بالتحقق من مناسبة القيمة قبل ان تقول باضافتها على الجدول وليس الحقل

تم تعديل هذه المشاركة بواسطة وليد مندني في 3 سبتمبر 2007 في 07:59

#5
اقتباس
اريد التحقق من ان القيمة الثالثة غير مكررة في الحقل كاملا

المشكلة مرتبطة بقاعدة البيانات و ليس vb.net

بالرغم من امكانية حلها عن طريق vb.net ولكن هيكون حل غير مثالي

بالنسبة للحل في السكول

مجرد unique constrant علي الحقل المطلوب

و الموضوع الي حد ما بعيد عن ال indexes

#6

جرب هذه الطريقة على حسب ما فهمت منك

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


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

والله اعلم

#7

المفروض ان تستخدم الحلين وهي بوضع 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
#8

اخي يمكنك عمل جملة sql ترجع true or false بالقيمة المدخلة قبل ما تقوم بعملية insert .

بالتوفيق

أكبر موقع عربي لتعليم السي شارب

موسوعة السي شارب

http://www.csharp1.com

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…