المشاركات : 14
المواضيع 4
الإنتساب : May 2014
السمعة :
0
الشكر: 0
تم شكره 1 مرات في 1 مشاركات
07-05-14, 03:04 PM
السلام عليكم ورحمة الله وبركاته
حابه استفسر عن كود منع التكرار في قاعدة البيانات
بحيث ان استخدم فيجوال ستيديو
وعندي قاعدة بيانات من نوع اكسس
اسم القاعدة students
والجدول s1
وعندي حقل من حقول الجدول اسمة id_number
حابه اذا شغلت برنامج وادخل قيمة في text box
و تكرر الرقم مايحفظها
بحيث تظهر لي message box
ان الرقم مكرر في قاعدة البيانات
المشاركات : 7,391
المواضيع 803
الإنتساب : Sep 2013
السمعة :
846
الشكر: 13249
تم شكره 18795 مرات في 4414 مشاركات
مثال بسيط
مربع نص textbox1
زر امر button1
شبيكة بيانات datagridview باسم dgv1
وهذا الكلاس
كود :
Imports System.Data.OleDb
Public Class Form1
Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\students.accdb"
Dim con As New OleDbConnection(str)
Dim ds As New DataSet
Private Sub dgds(ByVal d As DataSet)
If dgv1.InvokeRequired Then
dgv1.Invoke(New Action(Of DataSet)(AddressOf dgds), d)
Else
dgv1.DataSource = d
End If
End Sub
Private Sub dgv(ByVal d As String)
If dgv1.InvokeRequired Then
dgv1.Invoke(New Action(Of String)(AddressOf dgv), d)
Else
dgv1.DataMember = d
End If
End Sub
Private Sub gd()
dgds(Nothing)
dgv(Nothing)
ds.Clear()
Dim da As New OleDbDataAdapter("select id_number from s1", con)
da.Fill(ds, "s1")
dgds(ds)
dgv("s1")
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
begin()
End Sub
Private Sub begin()
Dim ath As New Threading.Thread(AddressOf gd)
If ath.IsAlive = False Then
ath.Start()
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If isfound(TextBox1.Text) Then
MsgBox("الرقم محجوز", MsgBoxStyle.Critical, "")
Exit Sub
End If
If addnew(TextBox1.Text) Then
MsgBox("تم الحفظ", MsgBoxStyle.Information, "")
Else
MsgBox("لم يتم الحفظ لوجود خطا", MsgBoxStyle.Critical, "")
End If
End Sub
Private Function isfound(ByVal txt As String) As Boolean
Dim cm As New OleDbCommand("select count(tid) from s1 where id_number=@id_number", con)
cm.Parameters.AddWithValue("@id_number", txt)
If con.State = ConnectionState.Closed Then
con.Open()
End If
If cm.ExecuteScalar > 0 Then
Return True
Else
Return False
End If
End Function
Private Function addnew(ByVal txt As String) As Boolean
Dim cm As New OleDbCommand("insert into s1(id_number) values(@id_number)", con)
cm.Parameters.AddWithValue("@id_number", txt)
If con.State = ConnectionState.Closed Then
con.Open()
End If
Try
cm.ExecuteNonQuery()
begin()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
المشاركات : 14
المواضيع 4
الإنتساب : May 2014
السمعة :
0
الشكر: 0
تم شكره 1 مرات في 1 مشاركات
(07-05-14, 04:48 PM)سعود كتب : مثال بسيط
مربع نص textbox1
زر امر button1
شبيكة بيانات datagridview باسم dgv1
وهذا الكلاس
كود :
Imports System.Data.OleDb
Public Class Form1
Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\students.accdb"
Dim con As New OleDbConnection(str)
Dim ds As New DataSet
Private Sub dgds(ByVal d As DataSet)
If dgv1.InvokeRequired Then
dgv1.Invoke(New Action(Of DataSet)(AddressOf dgds), d)
Else
dgv1.DataSource = d
End If
End Sub
Private Sub dgv(ByVal d As String)
If dgv1.InvokeRequired Then
dgv1.Invoke(New Action(Of String)(AddressOf dgv), d)
Else
dgv1.DataMember = d
End If
End Sub
Private Sub gd()
dgds(Nothing)
dgv(Nothing)
ds.Clear()
Dim da As New OleDbDataAdapter("select id_number from s1", con)
da.Fill(ds, "s1")
dgds(ds)
dgv("s1")
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
begin()
End Sub
Private Sub begin()
Dim ath As New Threading.Thread(AddressOf gd)
If ath.IsAlive = False Then
ath.Start()
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If isfound(TextBox1.Text) Then
MsgBox("الرقم محجوز", MsgBoxStyle.Critical, "")
Exit Sub
End If
If addnew(TextBox1.Text) Then
MsgBox("تم الحفظ", MsgBoxStyle.Information, "")
Else
MsgBox("لم يتم الحفظ لوجود خطا", MsgBoxStyle.Critical, "")
End If
End Sub
Private Function isfound(ByVal txt As String) As Boolean
Dim cm As New OleDbCommand("select count(tid) from s1 where id_number=@id_number", con)
cm.Parameters.AddWithValue("@id_number", txt)
If con.State = ConnectionState.Closed Then
con.Open()
End If
If cm.ExecuteScalar > 0 Then
Return True
Else
Return False
End If
End Function
Private Function addnew(ByVal txt As String) As Boolean
Dim cm As New OleDbCommand("insert into s1(id_number) values(@id_number)", con)
cm.Parameters.AddWithValue("@id_number", txt)
If con.State = ConnectionState.Closed Then
con.Open()
End If
Try
cm.ExecuteNonQuery()
begin()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
ماضبط معي ممكن ارسل لك المشروع تعدل لي عليه ؟؟؟
المشاركات : 7,391
المواضيع 803
الإنتساب : Sep 2013
السمعة :
846
الشكر: 13249
تم شكره 18795 مرات في 4414 مشاركات
إقتباس :ممكن ارسل لك المشروع تعدل لي عليه ؟؟؟
لاترسل المشروع لكن سو مثال بسيط وارسله.
المشاركات : 14
المواضيع 4
الإنتساب : May 2014
السمعة :
0
الشكر: 0
تم شكره 1 مرات في 1 مشاركات
ابي اذا دخلت
سجل مدني موجود في قاعدة البيانات
وضغطت تسجيل
مايسجل تظهر لي bessage box
http://im90.gulfup.com/Inl07l.png
المشاركات : 7,391
المواضيع 803
الإنتساب : Sep 2013
السمعة :
846
الشكر: 13249
تم شكره 18795 مرات في 4414 مشاركات
هذا اللي نتحدث عنه وموجود بالكود اللي كتبت لك
المشاركات : 14
المواضيع 4
الإنتساب : May 2014
السمعة :
0
الشكر: 0
تم شكره 1 مرات في 1 مشاركات
طيب اذا كان التكرار موجود text box 2
اللي هو السجل ايش نعدل في الكود ؟؟؟
و هل ينحفظ في قاعدة البيانات ؟؟
المشاركات : 7,391
المواضيع 803
الإنتساب : Sep 2013
السمعة :
846
الشكر: 13249
تم شكره 18795 مرات في 4414 مشاركات
الدالة فائدتها انك ترسل لها اي قيمة زي كذا
كود :
If isfound(TextBox1.Text) Then
MsgBox("محجوز", MsgBoxStyle.Critical, "")
Exit Sub
End If
If isfound(TextBox2.Text) Then
MsgBox("محجوز", MsgBoxStyle.Critical, "")
Exit Sub
End If
If isfound(TextBox3.Text) Then
MsgBox("محجوز", MsgBoxStyle.Critical, "")
Exit Sub
End If
وهكذا
المشاركات : 14
المواضيع 4
الإنتساب : May 2014
السمعة :
0
الشكر: 0
تم شكره 1 مرات في 1 مشاركات
مشششششششششششكوووووووووووووووووور
ماقصرت
المشاركات : 7,391
المواضيع 803
الإنتساب : Sep 2013
السمعة :
846
الشكر: 13249
تم شكره 18795 مرات في 4414 مشاركات
|