22-06-20, 02:16 AM
السلام عليكم و رحمة الله و بركاته
لنتابع الكود مع بعض
دالة التحميل الرئيسة في النموذج الاب
لنتابع الكود مع بعض
دالة التحميل الرئيسة في النموذج الاب
PHP كود :
Private Sub Frm_Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CreateKeyes()
Disable_Items()
Ts_Login_Click(sender, e)
End Sub
يتم استدعاء دالة انشاء مفاتيح في مسجل النظام و هي موجودة في الكلاس الخدمي Ml_ServerSetting.vb
وهي كما يلي:
PHP كود :
Public Sub CreateKeyes()
If Registry.CurrentUser.OpenSubKey(MainKeyName) Is Nothing Then
Dim ApplicationSetting As RegistryKey = Registry.CurrentUser.CreateSubKey(MainKeyName)
ConnectionStr = ApplicationSetting.CreateSubKey("UserConnectionString") 'حقل لنص الاتصال
ConnectionStr = ApplicationSetting.CreateSubKey("ServerName") 'حقل لاسم السيرفر
ConnectionStr = ApplicationSetting.CreateSubKey("DataBaseName") 'حقل لقاعدة البيانات
ConnectionStr = ApplicationSetting.CreateSubKey("Authentication_Mode") 'حقل طريقة الدخول
ConnectionStr = ApplicationSetting.CreateSubKey("Server_UserName") 'حقل لاسم مستخدم السيرفر
ConnectionStr = ApplicationSetting.CreateSubKey("Server_Password") 'حقل كلمة المرور للسيرفر
ConnectionStr = ApplicationSetting.CreateSubKey("CurrentApp_User") 'حقل المستخدم الحالي
ConnectionStr = ApplicationSetting.CreateSubKey("Current_UserKind") 'حقل لنوع المستخدم
ConnectionStr = ApplicationSetting.CreateSubKey("LastUserLogin") 'حقل اخر مستخدم ولج للبرنامج
DefaultSetting()
End If
End Sub
الدالة تنشئ مفاتيح في مسار محدد داخل العقدة Current_User و ضمن مجلد محدد نستمد اسمه من المتغير MainKeyName
و هو معرف في اعلى الكلاس كما يلي
PHP كود :
Public ReadOnly MainKeyName As String = "MyApplication_Keys"
هذا يعني اننا سنشئ مجلد بالاسم MyApplication_Keys و داخله ستكون المفاتيح مع قيمها الافتراضية المرسلة في الدالة التالية
PHP كود :
Private Sub DefaultSetting()
Try
If Not IsNothing(Registry.CurrentUser.OpenSubKey(MainKeyName)) Then
SetValueKey("UserConnectionString", "")
SetValueKey("ServerName", "")
SetValueKey("DataBaseName", "")
SetValueKey("Authentication_Mode", "")
SetValueKey("Server_UserName", "")
SetValueKey("Server_Password", "")
SetValueKey("CurrentApp_User", "")
SetValueKey("Current_UserKind", "")
SetValueKey("LastUserLogin", "")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
بعدها سياتي دور الدالة Disable_Items
وهي لتعطيل قوائم النموذج فقط.
بعدها يتم النداء على نموذج الدخول ليفتح و اول دالة فيه يتم المناداة على تحميل جدول المستخدمين .
PHP كود :
Cmb_UserName.DataSource = Bl_Login.User_GetAll
وهي تاتي من الكلاس الخاص بالمستخدمين , و بداخل هذا الكلاس دوال تستمد كائنات الاتصال و ما يتعلق بالسيرفر من كلاس طبقة الاتصال
لنلقي نظرة.
هذه دالة جلب المستخدمين من كلاس المستخدمين
PHP كود :
Public Function User_GetAll() As DataTable
Dim Dal As Dal.DataAccessLayer = New Dal.DataAccessLayer
If Dal.GetConnectionString IsNot Nothing Then
Dim Dt As New DataTable
Dt = Dal.SelectData("User_GetAll", Nothing)
Return Dt
End If
Return Nothing
End Function
كما نرى يتم النداء على كائن الاتصال من كلاس DataAccessLayer ننتقل الى هذا الكلاس و ندقق
PHP كود :
Public Class DataAccessLayer
Public Shared SqlCon As SqlConnection
Private ConnectionString As String = GetValueKey("UserConnectionString")
Public Sub New()
If Not String.IsNullOrEmpty(ConnectionString) Then
SqlCon = New SqlConnection(ConnectionString)
Else
MessageBox.Show("نص الاتصال بالسيرفر مفقود", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
OpenSetting()
End If
End Sub
Public ReadOnly Property GetConnectionString() As String
Get
If String.IsNullOrEmpty(ConnectionString) Then
Return Nothing
Else
Return ConnectionString
End If
End Get
End Property
كما نرى في بداية انشاء الكلاس يتم جلب قيمة نص الاتصال من المفتاح الخاص به في مسجل النظام
فاذا كان فارغاً و هو الحال الافتراضي في بداية اقلاع البرنامج سيتم المناداة على نموذج ضبط الاتصال عبر الدالة OpenSetting
و من هناك يجب ان نضبط السيرفر و القاعدة و نخزن نص الاتصال .
بعد ذلك لن نكون بحاجة اليه و سيتم قراءة نص الاتصال من المكان المطلوب.
صورة للمفاتيح المسجلة.
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


