14-09-24, 11:40 AM (آخر تعديل لهذه المشاركة : 14-09-24, 11:42 AM {2} بواسطة F.H.M.)
أخ طه مارأيك في هذا الكود
كود :
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 Car_info from Car_Number", con)
da.Fill(ds, "Car_Number")
dgds(ds)
dgv("Car_Number")
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
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
Dim r1, r2 As Integer
r1 = ExScalar("Select Count(Car_Number) From Car_info Where Car_Number='" & Car_Number.Text.Trim() & "'")
r2 = ExScalar("Select Count(Car_Qaedah_Number) From Car_info Where Car_Qaedah_Number='" & Car_Qaedah_Number.Text.Trim() & "'")
If r1 > 0 Then
MsgBox("لوحة هذه المركبة مسجلة مسبقاً - يرجى التأكد قبل الحفظ", vbOKOnly + vbExclamation, "Warrning")
Car_Number.Focus()
Exit Sub
ElseIf r2 > 0 Then
Dim msgR2 As DialogResult
msgR2 = MsgBox("شاصيه هذه المركبة مسجل مسبقاً" + vbNewLine + "اختر : " + vbNewLine + " 'نعم/Yes' " + vbNewLine + "اذا كنت تريد تجاهل الامر والاستمرار بالحفظ" + vbNewLine + " ", vbYesNo + vbExclamation, "Warrning")
If msgR2 <> DialogResult.Yes Then
Car_Qaedah_Number.Focus()
Exit Sub
End If
End If
Insert_Car_info(Car_ID.Text, Car_Number.Text, Car_Module.Text, Car_Tybe.Text, Car_Qesem.Text, Car_Molahthat.Text, Car_Qaedah_Number.Text, Car_Halah.Text)
SelectAll_Car_info(dgv_Car_info)
DataGridViewHeaderText(dgv_Car_info)
ClearControls()
Car_ID.Text = Max_Car_info() + 1
End Sub
الكود في الـ Module يصبح :
كود :
Imports System.Data.OleDb
Module Module1
Public strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=alyat2.accdb;Jet OLEDB:Database Password="
Public con As New OleDbConnection(strConn)
Public Function ExScalar(cmdText As String, ParamArray pParam As OleDbParameter()) As Object
Using pConn As New OleDbConnection(strConn) ' جملة الاتصال بقاعدة البيانات
pConn.Open()
Dim cmd As OleDbCommand = New OleDbCommand(cmdText, pConn)
For Each p In pParam
cmd.Parameters.Add(p)
Next
Public strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=alyat2.accdb;Jet OLEDB:Database Password="
Public con As New OleDbConnection(strConn)
Public Function ExScalar(cmdText As String) As Integer
Using pConn As New OleDbConnection(strConn) ' جملة الاتصال بقاعدة البيانات
pConn.Open()
Dim cmd As OleDbCommand = New OleDbCommand(cmdText, pConn)
أو خلي الـ Module كما قلنا سابقا في المشاركة 16# -- وعدل فقط زر الحفظ ليصبح :
كود :
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
Dim r1, r2 As Integer
Dim P1 As OleDbParameter = New OleDbParameter("@Car_Number", Car_Number.Text)
r1 = ExScalar("Select Count(Car_Number) From Car_info Where Car_Number=@Car_Number ", P1)
Dim P2 As OleDbParameter = New OleDbParameter("@Car_Qaedah_Number", Car_Qaedah_Number.Text)
r2 = ExScalar("Select Count(Car_Qaedah_Number) From Car_info Where Car_Qaedah_Number=@Car_Qaedah_Number ", P2)
If r1 > 0 Then
MsgBox("لوحة هذه المركبة مسجلة مسبقاً - يرجى التأكد قبل الحفظ", vbOKOnly + vbExclamation, "Warrning")
Car_Number.Focus()
Exit Sub
ElseIf r2 > 0 Then
Dim msgR2 As DialogResult
msgR2 = MsgBox("شاصيه هذه المركبة مسجل مسبقاً" + vbNewLine + "اختر : " + vbNewLine + " 'نعم/Yes' " + vbNewLine + "اذا كنت تريد تجاهل الامر والاستمرار بالحفظ" + vbNewLine + " ", vbYesNo + vbExclamation, "Warrning")
If msgR2 <> DialogResult.Yes Then
Car_Qaedah_Number.Focus()
Exit Sub
End If
End If
Insert_Car_info(Car_ID.Text, Car_Number.Text, Car_Module.Text, Car_Tybe.Text, Car_Qesem.Text, Car_Molahthat.Text, Car_Qaedah_Number.Text, Car_Halah.Text)
SelectAll_Car_info(dgv_Car_info)
DataGridViewHeaderText(dgv_Car_info)
ClearControls()
Car_ID.Text = Max_Car_info() + 1
End Sub
والآخر أريد المستخدم بعد الدخول للبرنامج يستطيع تغيير كلمة المرور بالضغط على زر بالشاشة الرئيسية كما بالصورة المرفقة وتعديل كلمة المرور بالفورم المرفق أيضاً