14-08-19, 02:20 AM
(آخر تعديل لهذه المشاركة : 14-08-19, 03:06 PM {2} بواسطة asemshahen5.)
الان نقوم بالتالي :
دبل كليك على My Project و نختار منها Settings و نقوم باضافة المتغيرين التاليين :
AdminUserID - AdminPassword
و الان نقوم بعمل فورم جديدة نسميها AddAdminCompanys تكون كالتالي :
و نكتب الكود التالي :
و بكدا بنكون انهينا الفورم .
و نبدأ بعمل فورم جديدة اسمها CreateCompany و تكون كالتالي :
و الان نقوم باضفة الكود التالي الى الموديول الذي قمنا بانشائه :
نعود للفورم و نكتب الاكواد التالية :
زر BtnADD :
زر BtnEdit :
زر BtnUpdate
قبل ذالك نضيف كود قرائة و تنفيذ الاستعلام من ملف سيكول طبعا يكون مكتوب فيه استعلامات انشاء قاعدة البيانات stock و المعلومات الاساسية لبعض الجداول مثال شجرة
الحسابات و ما الى ذالك الى الموديول :
و الان نضع كود الزر BtnUpdate :
و الان نضيف فانكشن جديد للموديول :
و الان زر BtnCancel :
زر BtnDelete :
زر BtnSearch :
زر BtnClose :
اذا وجدت عندك اي اخطاء استدع فضائات الاسماء التالية :
نكمل في الحلقة القادمة .
دبل كليك على My Project و نختار منها Settings و نقوم باضافة المتغيرين التاليين :
AdminUserID - AdminPassword
و الان نقوم بعمل فورم جديدة نسميها AddAdminCompanys تكون كالتالي :
و نكتب الكود التالي :
PHP كود :
Public Class AddAdminCompanys
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
If Txt_UserName.Text.Length = 0 Or Txt_Password1.Text.Length = 0 Or Txt_password2.Text.Length = 0 Then
MsgBox("الرجاء تعبئة جميع الحقول")
Exit Sub
End If
If Txt_Password1.Text = Txt_password2.Text Then
My.Settings.AdminUserID = Txt_UserName.Text
My.Settings.AdminPassword = Txt_Password1.Text
My.Settings.Save()
MsgBox("تم حفظ إعدادات مدير النظام")
BtnSave.Enabled = False
End If
End Sub
Private Sub BtnClose_Click(sender As Object, e As EventArgs) Handles BtnClose.Click
If BtnSave.Enabled = False Then
Dim Frm As New CreateCompany
Frm.Show()
Close()
Else
End
End If
End Sub
End Class
و بكدا بنكون انهينا الفورم .
و نبدأ بعمل فورم جديدة اسمها CreateCompany و تكون كالتالي :
و الان نقوم باضفة الكود التالي الى الموديول الذي قمنا بانشائه :
PHP كود :
Public Function MaxId(ID As String, TableName As String) As Integer
Dim StrSQL As String = "Select IIF(Max(" & ID & ") Is NULL,1,Max(" & ID & ")+1) From " & TableName
Dim da As New System.Data.SqlClient.SqlDataAdapter(StrSQL, con)
Dim dt As New DataTable
da.Fill(dt)
Return dt.Rows(0)(0)
End Function
Public Sub ExeSql(StrSQL As String)
Dim da As New System.Data.SqlClient.SqlDataAdapter(StrSQL, con)
Dim dt As New DataTable
da.Fill(dt)
End Sub
Public Function GetDatabaseName(StrSQL As String) As String
Dim da As New System.Data.SqlClient.SqlDataAdapter(StrSQL, con)
Dim dt As New DataTable
da.Fill(dt)
Return "stock" & dt.Rows.Count + 1
End Function
نعود للفورم و نكتب الاكواد التالية :
زر BtnADD :
PHP كود :
Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click
Txt_CompanyName.Clear()
Txt_DatabaseName.Clear()
Txt_ServerName.Clear()
Dtp_StartDate.Value = Now.ToString
Dtp_EndDate.Value = Now.AddYears(1)
Chk_CompanyCase.Checked = False
Txt_ID.Text = MaxId("ID", "CompanyName")
Txt_DatabaseName.Text = GetDatabaseName("select name from sysdatabases where name Like '%Stock%'")
BtnAdd.Enabled = False
BtnEdit.Enabled = False
BtnDelete.Enabled = False
BtnUpdate.Enabled = True
BtnCancel.Enabled = True
End Sub
زر BtnEdit :
PHP كود :
Private Sub BtnEdit_Click(sender As Object, e As EventArgs) Handles BtnEdit.Click
Dim StrSQL As String = "UPDATE CompanyName SET CompanyName='" & Txt_CompanyName.Text & "', StartDate='" & Dtp_StartDate.Value & "', EndDate='" & Dtp_EndDate.Value & "', CompanyCase='" & Chk_CompanyCase.Checked & "', ServerName='" & Txt_ServerName.Text & "', DatabaseName='" & Txt_DatabaseName.Text & "' Where ID='" & Txt_ID.Text & "'"
ExeSql(StrSQL)
MsgBox("تمت عملية تعديل معلومات الشركة بنجاح")
End Sub
زر BtnUpdate
قبل ذالك نضيف كود قرائة و تنفيذ الاستعلام من ملف سيكول طبعا يكون مكتوب فيه استعلامات انشاء قاعدة البيانات stock و المعلومات الاساسية لبعض الجداول مثال شجرة
الحسابات و ما الى ذالك الى الموديول :
PHP كود :
#Region "Creat Database And Table From Sql Scrpt"
'يقرأ ملفات السكول سيرفر من ملفات التكست الموجودة في مسار البرنامج'
Public Sub ExecutesqlFile(ByVal sqlFile As String, DatabaseName As String)
Using connection As New SqlClient.SqlConnection("Server =(local);database=" & DatabaseName & ";integrated security=true")
If connection.State = ConnectionState.Closed Then connection.Open()
Dim sql As String = ""
Using strm As FileStream = File.OpenRead(sqlFile)
Dim reader As New StreamReader(strm)
sql = reader.ReadToEnd()
End Using
Dim regex As New RegularExpressions.Regex("^GO", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
Dim lines As String() = regex.Split(sql)
Dim transaction As SqlClient.SqlTransaction = connection.BeginTransaction()
Using cmd As SqlClient.SqlCommand = connection.CreateCommand()
cmd.Connection = connection
cmd.Transaction = transaction
For Each line As String In lines
If line.Length > 0 Then
cmd.CommandText = line
cmd.CommandType = CommandType.Text
Try
cmd.ExecuteNonQuery()
Catch generatedExceptionName As SqlClient.SqlException
MsgBox(generatedExceptionName.Message, MsgBoxStyle.Critical, "")
transaction.Rollback()
Throw
End Try
End If
Next
End Using
transaction.Commit()
If connection.State = ConnectionState.Open Then connection.Close()
End Using
End Sub
#End Region
و الان نضع كود الزر BtnUpdate :
PHP كود :
Private Sub BtnUpdate_Click(sender As Object, e As EventArgs) Handles BtnUpdate.Click
Dim SqlStrXT As String = "create Database " & Txt_DatabaseName.Text
ExeSql(SqlStrXT)
Try
ExecutesqlFile(Application.StartupPath & "\SqlCreateCompany.Sql", Txt_DatabaseName.Text)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
Dim StrSQL As String = "INSERT INTO CompanyName (ID,CompanyName,StartDate,EndDate,CompanyCase,ServerName,DatabaseName ) VALUES ('" & Txt_ID.Text & "','" & Txt_CompanyName.Text & "','" & Dtp_StartDate.Value & "','" & Dtp_EndDate.Value & "','" & Chk_CompanyCase.Checked & "','" & Txt_ServerName.Text & "','" & Txt_DatabaseName.Text & "')"
ExeSql(StrSQL)
BtnAdd.Enabled = True
BtnEdit.Enabled = True
BtnDelete.Enabled = True
BtnUpdate.Enabled = False
BtnCancel.Enabled = False
End Sub
و الان نضيف فانكشن جديد للموديول :
PHP كود :
Public Function ExeSqlDT(StrSQL As String) As DataTable
Dim da As New System.Data.SqlClient.SqlDataAdapter(StrSQL, con)
Dim dt As New DataTable
da.Fill(dt)
Return dt
End Function
و الان زر BtnCancel :
PHP كود :
Private Sub BtnCancel_Click(sender As Object, e As EventArgs) Handles BtnCancel.Click
Dim StrSQL As String = "Select * From CompanyName"
Dim DT As New DataTable
DT.Clear()
DT = ExeSqlDT(StrSQL)
If DT.Rows.Count > 0 Then
Txt_CompanyName.Text = DT.Rows(0)("CompanyName")
Txt_DatabaseName.Text = DT.Rows(0)("DatabaseName")
Txt_ID.Text = DT.Rows(0)("ID")
Txt_ServerName.Text = DT.Rows(0)("ServerName")
Dtp_StartDate.Value = CDate(DT.Rows(0)("StartDate"))
Dtp_EndDate.Value = CDate(DT.Rows(0)("EndDate"))
Chk_CompanyCase.Checked = CBool(DT.Rows(0)("CompanyCase"))
End If
BtnAdd.Enabled = True
BtnEdit.Enabled = True
BtnDelete.Enabled = True
BtnUpdate.Enabled = False
BtnCancel.Enabled = False
End Sub
زر BtnDelete :
PHP كود :
Private Sub BtnDelete_Click(sender As Object, e As EventArgs) Handles BtnDelete.Click
Dim StrSQL As String = "Delete From CompanyName Where ID = '" & Txt_ID.Text & "'"
Dim TxtID As String = Txt_ID.Text
If MsgBox("هل أنت متأكد من حذف السجل المحدد " & Txt_ID.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading, "حذف سجل") = MsgBoxResult.Yes Then
Dim SqlStrXT As String = "ALTER DATABASE [" & Txt_DatabaseName.Text & "] Set SINGLE_USER With ROLLBACK IMMEDIATE" & vbNewLine
SqlStrXT += "DROP DATABASE [" & Txt_DatabaseName.Text & "]" & vbNewLine
ExeSql(SqlStrXT)
ExeSql(StrSQL)
MsgBox("تم حذف السجل المحدد " & Txt_ID.Text & " بنجاح ", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading, "حذف سجل")
End If
End Sub
زر BtnSearch :
PHP كود :
Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click
Dim StrSQL As String = "Select * From CompanyName Where CompanyName = '" & TxtSearch.Text & "'"
ExeSql(StrSQL)
End Sub
زر BtnClose :
PHP كود :
Private Sub BtnClose_Click(sender As Object, e As EventArgs) Handles BtnClose.Click
Close()
End Sub
اذا وجدت عندك اي اخطاء استدع فضائات الاسماء التالية :
PHP كود :
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.IO
نكمل في الحلقة القادمة .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر

