تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كيفية عمل تعدد الشركات في البرنامج المحاسبي
#11
الان نقوم بالتالي :

دبل كليك على My Project و نختار منها Settings و نقوم باضافة المتغيرين التاليين :

AdminUserID - AdminPassword 

   

و الان نقوم بعمل فورم جديدة نسميها AddAdminCompanys تكون كالتالي :

   

و نكتب الكود التالي :

PHP كود :
Public Class AddAdminCompanys
    Private Sub BtnSave_Click
(sender As ObjectAs EventArgsHandles BtnSave.Click
        If Txt_UserName
.Text.Length Or Txt_Password1.Text.Length 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 ObjectAs EventArgsHandles 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 StringTableName 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(StrSQLcon)
 
       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(StrSQLcon)
 
       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(StrSQLcon)
 
       Dim dt As New DataTable
        da
.Fill(dt)
 
       Return "stock" dt.Rows.Count 1
    End 
Function 


نعود للفورم و نكتب الاكواد التالية :

زر BtnADD :


 
PHP كود :
   Private Sub BtnAdd_Click(sender As ObjectAs EventArgsHandles 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 ObjectAs EventArgsHandles 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 StringDatabaseName 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.MessageMsgBoxStyle.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 ObjectAs EventArgsHandles 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(StrSQLcon)
 
       Dim dt As New DataTable
        da
.Fill(dt)
 
       Return dt
    End 
Function 

و الان زر BtnCancel :

PHP كود :
   Private Sub BtnCancel_Click(sender As ObjectAs EventArgsHandles 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 ObjectAs EventArgsHandles 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.TextMsgBoxStyle.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 ObjectAs EventArgsHandles 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 ObjectAs EventArgsHandles BtnClose.Click
        Close
()
 
   End Sub 

اذا وجدت عندك اي اخطاء استدع فضائات الاسماء التالية :

PHP كود :
Imports System.Text
Imports System
.Text.RegularExpressions
Imports System
.IO 

نكمل في الحلقة القادمة .
الرد }}}


الردود في هذا الموضوع
RE: كيفيه الاتصال باكثر من قاعده بياناتsql server - بواسطة asemshahen5 - 14-08-19, 02:20 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  دورة كيفية تصميم برنامج محاسبة VB.NET+SQL محاسب يوسف 7 38,632 01-08-23, 05:25 PM
آخر رد: ibrahimibrahim
  كيفية تهيئة وتحديد مسار التثبيت وكذلك خيارت الاختصارات مع المعلومات [ الدرس الثاني ] elgokr 9 5,725 28-06-20, 06:10 PM
آخر رد: alsouf
  كيفية انشاء حقوق ملكية وشروط الاستخدام وافتتاحية التحزيم [ الدرس الاول ]. elgokr 23 10,741 28-06-20, 05:59 PM
آخر رد: alsouf
  ياشباب ممكن حد ياساعددني في البرنامج ده ؟ medowassem50 0 1,881 29-01-20, 08:41 PM
آخر رد: medowassem50
  كيفية اتمام شاشات بخصائص وخيارات تتيح للمستخدم حرية الاختيار [ الدرس الثالث ] elgokr 4 3,831 05-07-19, 08:17 PM
آخر رد: elgokr
  [VB.NET] عمل تحديث لمستخدمين البرنامج الخاص بك اونلاين عن طريق ال DropBox YousefOkasha 8 7,744 24-04-19, 03:50 PM
آخر رد: YousefOkasha
  [كود] change language of programm easy way by VB.Net تغيير لغة البرنامج بطريقة عالمية وبسي وعد مولود 1 2,979 27-08-18, 08:48 AM
آخر رد: elgokr
  [سؤال] عندي مشكلة لما انهيت البرنامج hamada_commerce 2 2,877 06-11-17, 03:48 PM
آخر رد: hamada_commerce

التنقل السريع :


يقوم بقرائة الموضوع: