خلال بحثي عن معلومات او عن كيفية جعل البيانات لاتتكرر في قواعد البيانات
لم أجد اي كود بسيط ,
من فضلكم أود نموذج لمشروع او طريقة عدم تكرار البيانات المدخلة في قاعدة البيانات
25-08-19, 08:27 PM (آخر تعديل لهذه المشاركة : 25-08-19, 08:27 PM {2} بواسطة Rabeea Qbaha.)
PHP كود :
Private Function ID_Exists(ByVal num As Integer) As Boolean If Conn.State = ConnectionState.Closed Then Conn.Open() End If
Dim cmd As SqlCommand = New SqlCommand("Select count(*) from Unit where ID= @ID", Conn) cmd.Parameters.AddWithValue("@ID", num) Dim result = cmd.ExecuteScalar() Conn.Close() Return Convert.ToBoolean(result) End Function
PHP كود :
If ID_Exists(ID.Text.text) = True Then the ID already in database Else the ID not in database End If
يمكنك ان تقوم بفحص اي عمود تشاء كل ما عليك هو تغير العمود where ID= @ID
اخي الكود الاول عبارة فنكشن يوضع لحاله اما الكود الثاني فيوضع في زر الحفظ
وهو سيعود عليك بقيمة true ان كان السجل الذي ستحفظه موجود سابقا وبالتالي ضع امر الخروج من الصب
وان كان غير موجود يتابع الحفظ
والكود الثاني هكذا في زر الحفظ
كود :
If ID_Exists(ID.Text) = True Then
MsgBox("هذا السجل موجود سابقا")
Exit Sub
Else
' هنا امر الحفظ
End If
ولكن حين وضعي للكود اعلاه اجد به اخطاء
مثلا في
كود :
Private Function ID_Exists(ByVal num As Integer) As Boolean
If Conn.State = ConnectionState.Closed Then
Conn.Open()
End If
Dim cmd As SqlCommand = New SqlCommand("Select count(*) from Unit where ID= @ID", Conn)
cmd.Parameters.AddWithValue("@ID", num)
Dim result = cmd.ExecuteScalar()
Conn.Close()
Return Convert.ToBoolean(result)
End Function
أجد السطر Dim cmd As SqlCommand = New SqlCommand("Select count(*) from Unit where ID= @ID", Conn)
به مشكلة في المتغير conn حيث انني أستخدم في الاستدعاء System.Data.OleDb
وحيث وضعت هذا الكود اضطررت الى اضافة الاستدعاء Imports System.Data.SqlClient
المشكلة ان المتغير conn لايقبل الاستدعاء المزدوج اتمنى ان تصلكن فكرة المشكلة
If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim cmd As SqlCommand = New SqlCommand("Select count(رقم_ب_ت_و) from Table1 where ID= @ID", con)
cmd.Parameters.AddWithValue("@ID", num)
Dim result = cmd.ExecuteScalar()
con.Close()
Return Convert.ToBoolean(result)
End Function
(31-08-19, 10:12 PM)الرائد كتب : If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim cmd As SqlCommand = New SqlCommand("Select count(رقم_ب_ت_و) from Table1 where ID= @ID", con)
cmd.Parameters.AddWithValue("@ID", num)
Dim result = cmd.ExecuteScalar()
con.Close()
Return Convert.ToBoolean(result)
End Function
لازلت اعاني من نفس المشكل
دعني اشرح لك :
هذا الكود يجب ان تضعة في الكلاس خارج اي event يعني خارج البوتون او اي شي اخر
PHP كود :
Private Function ID_Exists(ByVal num As Integer) As Boolean If Conn.State = ConnectionState.Closed Then Conn.Open() End If
Dim cmd As SqlCommand = New SqlCommand("Select count(*) from Unit where ID= @ID", Conn) cmd.Parameters.AddWithValue("@ID", num) Dim result = cmd.ExecuteScalar() Conn.Close() Return Convert.ToBoolean(result) End Function
الذي تحتاج تغيرة هنا هو :
١- ID= @ID ---- يعني لو انت تريد مثلا رقم هاتف ان لا يتكرر تغير ال ID بالعمود الخاص برقم الهاتف phone=@phone ... 2 - conn ----- الخاص بجملة الاتصال بقاعدة البيانات ممكن يكون لديك تكون con - connection انتبة.
٣- Unit ------ اسم الجدول.
الكود التي تضعه او تطلبة في الحدث عندما تريد ان تتاكد اذا كان السجل المراد ادخالة موجود او لا
يعني في زر الحفظ او المكان الذي تحتاجة :
PHP كود :
If ID_Exists(ID.Text) = True Then MsgBox("هذا السجل موجود سابقا") Exit Sub Else ' هنا امر الحفظ End If
ID.Text تقوم بتغيره بالنص الذي تريد التاكد من اذا كان مسحل قبل ام لا
في النهاية اذا تريد ارسل لي المشروع او قم بعمل مشروع صغير لاعدل لك علية
(31-08-19, 10:12 PM)الرائد كتب : If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim cmd As SqlCommand = New SqlCommand("Select count(رقم_ب_ت_و) from Table1 where ID= @ID", con)
cmd.Parameters.AddWithValue("@ID", num)
Dim result = cmd.ExecuteScalar()
con.Close()
Return Convert.ToBoolean(result)
End Function
لازلت اعاني من نفس المشكل
دعني اشرح لك :
هذا الكود يجب ان تضعة في الكلاس خارج اي event يعني خارج البوتون او اي شي اخر
PHP كود :
Private Function ID_Exists(ByVal num As Integer) As Boolean If Conn.State = ConnectionState.Closed Then Conn.Open() End If
Dim cmd As SqlCommand = New SqlCommand("Select count(*) from Unit where ID= @ID", Conn) cmd.Parameters.AddWithValue("@ID", num) Dim result = cmd.ExecuteScalar() Conn.Close() Return Convert.ToBoolean(result) End Function
الذي تحتاج تغيرة هنا هو :
١- ID= @ID ---- يعني لو انت تريد مثلا رقم هاتف ان لا يتكرر تغير ال ID بالعمود الخاص برقم الهاتف phone=@phone ... 2 - conn ----- الخاص بجملة الاتصال بقاعدة البيانات ممكن يكون لديك تكون con - connection انتبة.
٣- Unit ------ اسم الجدول.
الكود التي تضعه او تطلبة في الحدث عندما تريد ان تتاكد اذا كان السجل المراد ادخالة موجود او لا
يعني في زر الحفظ او المكان الذي تحتاجة :
PHP كود :
If ID_Exists(ID.Text) = True Then MsgBox("هذا السجل موجود سابقا") Exit Sub Else ' هنا امر الحفظ End If
ID.Text تقوم بتغيره بالنص الذي تريد التاكد من اذا كان مسحل قبل ام لا
في النهاية اذا تريد ارسل لي المشروع او قم بعمل مشروع صغير لاعدل لك علية