ممكن حفظ بدون تكرار - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41) +--- الموضوع : ممكن حفظ بدون تكرار (/showthread.php?tid=9793) |
ممكن حفظ بدون تكرار - مصطفى - 25-07-13 السلام عليكم استاذتنا الكرام عندي برنامج باراكود واريد اضافة لكل سلعة باراكود وحفضها في قواعد البيانات السوال كيف يمكنني حفظ الباركود بدون تكرار اي كيف استطيع التاكد من قاعدة البيانات ان هذا الباركود غير موجود هو رقم طبعا المشكلة عندي ماعرف الكود الذي يتحقق فقط من قاعده البيانات ارجو من ذوي الخبرة مساعدتي وشكرا اخوكم مصطفى ممكن حفظ بدون تكرار - مصطفى - 26-07-13 شباب ردو علينا جزاكم الله خير الجزاء وهذا شهر رمضان لايضيع فيه الاجر والثواب ممكن حفظ بدون تكرار - abuzzouz - 27-07-13 أخي مصطفى سؤالك غير واضح.. لكن إليك الجواب كما فهمت كود : Dim dbConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\DataFile.mdb") طبعاً قاعدة البيانات هنا من نوع Access ممكن حفظ بدون تكرار - hoob computer - 28-07-13 السلام عليكم و رحمة الله و بركاته, أخي الكريم, إجعل حقل (رقم الباركود) في قاعدة البيانات (Unique) و ذلك بجعل الحقل (Indexed) و بهذا فإن قاعدة البيانات ستمنع أي رقم مكرر مدخل في حقل الباركود. تحياتي. ممكن حفظ بدون تكرار - مصطفى - 28-07-13 شكرا الكم شباب ونورتونه بمشاركتكم ونصيحتكم الله يزيدكم ممكن حفظ بدون تكرار - dleesh - 30-07-13 حفظ السجل بدون تكرار .. من تجربتي Sub SaveRecords() Dim SaveMyCmd As New OleDbCommand SaveMyCmd.Connection = Con Con.Open() SaveMyCmd.CommandText = "select * from Students where Stud_Num= " & TxtNum.Text & "" Dim reader As OleDbDataReader = SaveMyCmd.ExecuteReader If reader.Read Then MsgBox(" البيانات موجودة مسبقا؟؟", MsgBoxStyle.Critical, "تنبيه") reader.Close() Exit Sub Else reader.Close() End If With SaveMyCmd .Connection = Con .CommandType = CommandType.Text .CommandText = "insert into Students (Stud_Name,Stud_Num,Stud_Nat,Stud_Age,Stud_Phone,Stud_Mobile,Stud_Address,Stud_Notes) values(?,?,?,?,?,?,?,?)" .Parameters.Clear() .Parameters.AddWithValue("@Stud_Name", OleDbType.VarChar).Value = TxtName.Text.Trim .Parameters.AddWithValue("@Stud_Num", OleDbType.Integer).Value = TxtNum.Text.Trim .Parameters.AddWithValue("@Stud_Nat", OleDbType.VarChar).Value = TxtNat.Text.Trim .Parameters.AddWithValue("@Stud_Age", OleDbType.Integer).Value = TxtAge.Text.Trim .Parameters.AddWithValue("@Stud_Phone", OleDbType.VarChar).Value = TxtTel.Text.Trim .Parameters.AddWithValue("@Stud_Mobile", OleDbType.VarChar).Value = TxtMobile.Text.Trim .Parameters.AddWithValue("@Stud_Address", OleDbType.VarChar).Value = TxtAddress.Text.Trim .Parameters.AddWithValue("@Stud_Notes", OleDbType.VarChar).Value = TxtNotes.Text.Trim End With SaveMyCmd.ExecuteNonQuery() Con.Close() FrmTree1List2Grid3_Load(Nothing, Nothing) MsgBox(" تم حفظ البيانات بنجاح ", MsgBoxStyle.Information) End Su ممكن حفظ بدون تكرار - dleesh - 30-07-13 يرجى نسخ الكود وتغيير اتجاهه ويتضح ... طبعا مع تغيير الحقول ..مفيدوشغال انا عليه . ممكن حفظ بدون تكرار - أبو يعقوب - 30-07-13 لتجنب تكرار قيمة حتى لو ان قاعدة البيانات لن تسمح بالتكرار فإنك تريد عمل تحقق من المدخلات أليس كذلك ؟ الحالة الأولى :عندما تريد إنشاء سجل جديد تنفذ هذه الجملة لتحصل على عدد السجلات التي فيها القيمة المميزة Select Count(*) Where [UniqueField]=@UniqueValue عندما تنفذ ExecuteScalar ستعود هذه الدالة بقيمة عددية فيها عدد الصفوف الي تحتوي على هذه القيمة إذا كانت القيمة أكبر من صفر (يعني واحد وفوق) يعني القيمة ستكون مكررة وبالتالي لاتسمج بعملية إنشاء سجل بهذه القيمة الحالة الثانية: عندما تريد تغيير القيمة لسجل موجود مسبقاً في هذه الحالة يجب أن يكون لديك PrimaryKey ثابت لايتغير يفضل AutoNumber ستكون الجملة كالتالي Select Count(*) Where [UniqueField]=@UniqueValue And [ID]<>@IDValue ثم تتابع كما في الحالة الأولى |