25-06-16, 02:31 AM
الان ناتي الى الاستفادة من الكائنات التي عرفناها مسبقا و نحول ملئها بالمعومات المفيدة
اولا لنحصل السيرفرات المثبته بالجهاز و فق الاجراء التالي
هذا الاجراء موجود في الموضوع الذي اشرت اليه في الاعلى لمن يعاني من مشكلة فيه كما حصل مع الاخ عمر مكاوي فليستخدم كود الاخ عمر
و الكودان يعملان بشكل جيد
و الوظيفة من الاجراء السابق مشروحة ضمن التعليقات بالكود السابق و مختصرها جلب السيرفرات في الجهاز و وضعها في مصفوفة السيرفرات التي انشأناها سابقا
بعد ان توفرنا على السيرفر اصبح بامكاننا الحصول على قواعد البيانات بداخله و اضافتها الى مصفوفة قواعد البيانات لدينا
و كذلك ايضا تحميل الجداول في القاعدة المحددة الى مصفوفة الجداول .
الاجراء الخاص بتاسيس اتصال مع القاعدة المحددة مشروح بالتفصيل ضمن الكود
الان اجراء يقوم بفتح الاتصال مع القاعدة المحددة وفق رغبتنا مع الشرح
و اخيرا و ليس اخرا غلق الاتصال مع القاعدة
الان سنقوم بعمل بعض الخصائص التي تفيدنا اثناء عملنا
مذا لو احتجت الى كائن الاتصال و معلومات عنه الا يجب ان يكون لدينا طريقة للوصول اليه , نعم بكل تاكيد
اليك هذه الخاصية للوصول اليه
و كذلك لما لا نعيد نص الاتصال يمكن نحتاجه
مع انه يمكننا الحصول على حالة الاتصال بس زيادة الخير خير
و كمان يمكن نحتاج لاسم السيرفر خلي الكلاس يصير شوربة
و كمان ايضا لدي خطة لاعادة اسماء السيرفرات و اسماء قواعد البيانات و اسماء الجداول في السيرفر لانني ساحتاجها لاحقا ... ساخبرك لاحقا!!!!
السيرفرات
القواعد
الجداول
و هذا كود الكلاس كامل منظم
اولا لنحصل السيرفرات المثبته بالجهاز و فق الاجراء التالي
PHP كود :
''' <summary>
''' اجراء يقوم بالبحث عن السيرفرات المثبتة على الجهاز
''' و اضافتها الى مصفوفة السيرفرات ويعيد نص اتصال مع السيرفر
''' </summary>
''' <returns>يعود بقيمة نصية تمثل اسم السيرفر الاخير</returns>
''' <remarks>بامكانك استخدام مربع نص او قائمة لاستقبال المخرجات</remarks>
Private Shared Function LoadServ() As String
Dim Machine As String = Nothing
Dim rk As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server")
Dim instances As [String]() = DirectCast(rk.GetValue("InstalledInstances"), [String]())
If instances.Length > 0 Then
For Each element As [String] In instances
If element = "MSSQLSERVER" Then
Machine = (System.Environment.MachineName)
ReDim SrvNameArray(instances.Length - 1)
instances.CopyTo(SrvNameArray, 0)
Else
Machine = (System.Environment.MachineName + "\" + element)
ReDim SrvNameArray(instances.Length - 1)
instances.CopyTo(SrvNameArray, 0)
End If
Next
End If
srvcon = New ServerConnection(Machine)
Srv = New Server(srvcon)
Return Machine
End Function
هذا الاجراء موجود في الموضوع الذي اشرت اليه في الاعلى لمن يعاني من مشكلة فيه كما حصل مع الاخ عمر مكاوي فليستخدم كود الاخ عمر
و الكودان يعملان بشكل جيد
و الوظيفة من الاجراء السابق مشروحة ضمن التعليقات بالكود السابق و مختصرها جلب السيرفرات في الجهاز و وضعها في مصفوفة السيرفرات التي انشأناها سابقا
بعد ان توفرنا على السيرفر اصبح بامكاننا الحصول على قواعد البيانات بداخله و اضافتها الى مصفوفة قواعد البيانات لدينا
PHP كود :
''' <summary>
''' اجراء يقوم بتحميل قواعد البيانات في السيرفر المحدد
''' واضافتها الى مصفوفة القواعد
''' </summary>
''' <remarks></remarks>
Private Shared Sub loaddbnames()
Dim db As New Database
Dim j As Integer = 0
For i = 0 To Srv.Databases.Count - 1
If Not Srv.Databases(i).IsSystemObject And Not ((Srv.Databases(i).Name = "")) Then
ReDim Preserve srvdbnames(j)
db.Name = Srv.Databases(i).Name
srvdbnames.SetValue(db.Name, j)
j += 1
End If
Next
End Sub
و كذلك ايضا تحميل الجداول في القاعدة المحددة الى مصفوفة الجداول .
PHP كود :
''' <summary>
''' اجراء يقوم بتحميل جداول القاعدة المحددة
''' و اضافتها الى مصفوفة الجداول
''' </summary>
''' <remarks></remarks>
Private Shared Sub LoadTablenames()
If Not (SqlDbName Is Nothing) Or SqlDbName = "" Then
Dim Dbs As Database = Srv.Databases(SqlDbName)
ReDim TablesSrvDbs(Dbs.Tables.Count)
For i = 0 To Dbs.Tables.Count - 1
If Not Dbs.Tables(i).IsSystemObject Then
TablesSrvDbs.SetValue(Dbs.Tables(i).Name, i)
End If
Next
End If
End Sub
الاجراء الخاص بتاسيس اتصال مع القاعدة المحددة مشروح بالتفصيل ضمن الكود
PHP كود :
''' <summary>
''' اجراء يقوم بتاسيس الاتصال مع القاعدة المحددة
''' و يحتاج الى بارميتر نصي يمثل اسم القاعدة
''' </summary>
''' <param name="Dbname">اسم قاعدة البيانات كنص</param>
''' <returns>يعود بقيمة نصية تمثل نص الاتصال</returns>
''' <remarks></remarks>
Public Shared Function SetConnectionString_ForDb(ByVal Dbname As String) As String
'فحص طول مصفوفة السيرفرات
If SrvNameArray.Length <= 0 Then
LoadServ()
End If
'فحص طول مصفوفة القواعد
If srvdbnames.Length <= 0 Then
loaddbnames()
End If
'التاكد من وجود سيرفرات على الجهاز من خلال مصفوفة السيرفرات
If srvdbnames.Length <= 0 Then
Return MsgBox("تاكد من وجود سيرفرات على الجهاز", , "From SetConnectionString_ForDb")
Exit Function
End If
'التاكد من وجود قواعد على السيرفر من خلال مصفوفة القواعد
If srvdbnames.Length <= 0 Then
Return MsgBox("تاكد من وجود قواعد على السيرفر", , "From SetConnectionString_ForDb")
Exit Function
End If
'الحصول على اسم اخر سيرفر
Dim PcName As String = LoadServ()
'حلقة لفحص وجود القاعدة المحددةفي مصفوفة القواعد
'ثم اسنادها الى المتغير العام الذي يمثل اسم القاعدة
'ثم تحميل الجداول الموجودة في القاعدة الى مصفوفة الجداول
'و العودة بنص الاتصال مع القاعدة المحددة
For i As Integer = 0 To srvdbnames.Length - 1
If (Dbname = srvdbnames(i)) Then
SqlDbName = Dbname
LoadTablenames()
Return "Data Source=" & PcName & ";" & "Database=" & SqlDbName & ";" _
& "Integrated Security=true;"
End If
Next
'عرض رسالة في حال عدم تواجد القاعدة و اغلاق الاجراء
If SqlDbName = "" Then
Return MsgBox("القاعدة غير موجودة ضمن السيرفر", , "From SetConnectionString_ForDb")
Exit Function
End If
'العودة بنص الاتصال مع القاعدة المحددة
Return "Data Source=" & PcName & ";" & "Database=" & SqlDbName & ";" _
& "Integrated Security=true;"
End Function
الان اجراء يقوم بفتح الاتصال مع القاعدة المحددة وفق رغبتنا مع الشرح
PHP كود :
''' <summary>
''' اجراء يقوم بفتح الاتصال مع قاعدة البيانات المحددة
''' </summary>
''' <returns>يعيد قيمة نصية تمثل حالة الاتصال</returns>
''' <remarks></remarks>
Public Shared Function OpenSqlConnection() As String
'فحص حالة الاتصال
If SqlConnection.State = ConnectionState.Closed Then
'ربط الاتصال مع القاعدة المحددة
_SqlConnectionString = SetConnectionString_ForDb(SqlDbName)
'اسناد نص الاتصال الى كائن الاتصال
SqlConnection.ConnectionString = _SqlConnectionString
'فتح الاتصال
SqlConnection.Open()
End If
'العودة بقيمة توضح حالة الاتصال
Return SqlConnection.State.ToString
End Function
و اخيرا و ليس اخرا غلق الاتصال مع القاعدة
PHP كود :
''' <summary>
''' اجراء يقوم بغلق الاتصال مع قاعدة البيانات
''' </summary>
''' <returns>يعيد قيمة نصية تمثل حالة الاتصال</returns>
''' <remarks></remarks>
Public Shared Function CloseSqlConnection() As String
'فحص حالة الاتصال اذا كان مفتوح يتم اغلاقه
If SqlConnection.State = ConnectionState.Open Then
SqlConnection.Close()
End If
'العودة بقيمة توضح حالة الاتصال
Return GetConnectionState()
End Function
الان سنقوم بعمل بعض الخصائص التي تفيدنا اثناء عملنا
مذا لو احتجت الى كائن الاتصال و معلومات عنه الا يجب ان يكون لدينا طريقة للوصول اليه , نعم بكل تاكيد
اليك هذه الخاصية للوصول اليه
PHP كود :
''' <summary>
''' خاصية للقراءة فقط تعيد كائن اتصال
''' </summary>
''' <value>القيمة هي كائن اتصال</value>
''' <returns>يعيد كائن اتصال</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetSqlConnection() As SqlConnection
Get
Return SqlConnection
End Get
End Property
و كذلك لما لا نعيد نص الاتصال يمكن نحتاجه
PHP كود :
''' <summary>
''' خاصية للقراءة فقط
''' تعيد نص الاتصال
''' </summary>
''' <value>القيمة المعادة تمثل نص الاتصال</value>
''' <returns>القيمة المعادة تمثل نص الاتصال</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetSQlConnectionString() As String
Get
Return "Connection String : " & _SqlConnectionString
End Get
End Property
مع انه يمكننا الحصول على حالة الاتصال بس زيادة الخير خير
PHP كود :
''' <summary>
''' خاصية للقراءة فقط
''' تعيد حالة الاتصال
''' </summary>
''' <value>القيمة المعادة تمثل حالة الاتصال</value>
''' <returns>القيمة المعادة تمثل حالة الاتصال</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetConnectionState As String
Get
Return "Connection State Is : " & SqlConnection.State.ToString
End Get
End Property
و كمان يمكن نحتاج لاسم السيرفر خلي الكلاس يصير شوربة
PHP كود :
''' <summary>
''' خاصية للقراءة فقط تعيد اسم السيرفر المستخدم
''' </summary>
''' <value>القيمة المعادة تمثل اسم السيرفر</value>
''' <returns>القيمة المعادة تمثل اسم السيرفر</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetSrvName As String
Get
Return "Server Name : " & Srv.Name
End Get
End Property
و كمان ايضا لدي خطة لاعادة اسماء السيرفرات و اسماء قواعد البيانات و اسماء الجداول في السيرفر لانني ساحتاجها لاحقا ... ساخبرك لاحقا!!!!
السيرفرات
PHP كود :
''' <summary>
''' خاصية للقراءة فقط تعيد نص يمثل اسماء السيرفرات
''' </summary>
''' <value>القيمة المعادة نص يمثل اسماء السيرفرات</value>
''' <returns>القيمة المعادة نص يمثل اسماء السيرفرات</returns>
''' <remarks></remarks>
Shared ReadOnly Property ShowServersNames() As String
Get
Dim SrvN As String = ""
For i As Integer = 0 To SrvNameArray.Length - 1
SrvN += SrvNameArray.GetValue(i) & vbCrLf
Next
Return SrvN
End Get
End Property
القواعد
PHP كود :
''' <summary>
''' خاصية للقراءة فقط تعيد اسماء القواعد في السيرفر
''' </summary>
''' <value>القيمة المعادة تمثل نص يحمل اسماء القواعد في السيرفر</value>
''' <returns>القيمة المعادة تمثل نص يحمل اسماء القواعد في السيرفر</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetDbNames() As String
Get
Dim DbName As String = ""
For i As Integer = 0 To srvdbnames.Length - 1
DbName += srvdbnames.GetValue(i) & vbCrLf
Next
Return DbName
End Get
End Property
الجداول
PHP كود :
''' <summary>
''' خاصية للقراءة فقط تعيد اسماء الجداول في القاعدة المحددة
''' </summary>
''' <value>القيمة المعادة تمثل نص يحمل اسماء الجداول في القاعدة المحددة</value>
''' <returns>القيمة المعادة تمثل نص يحمل اسماء الجداول في القاعدة المحددة</returns>
''' <remarks></remarks>
Public Shared ReadOnly Property GetTablesName() As String
Get
Dim Tablename As String = ""
For i As Integer = 0 To TablesSrvDbs.Length - 1
Tablename += TablesSrvDbs.GetValue(i) & vbCrLf
Next
Return Tablename
End Get
End Property
و هذا كود الكلاس كامل منظم
PHP كود :
Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.Win32
Imports System.Data.SqlClient
Public Class ServSite
''' <summary>
''' متغير من النوع سيرفر
''' نستخدمه للتعامل مع السيرفر
''' </summary>
''' <remarks></remarks>
Protected Shared Srv As New Server
''' <summary>
''' متغير من النوع اتصالات السيرفر
''' نستخدمه لتمرير اتصال للسيرفر
''' </summary>
''' <remarks></remarks>
Protected Shared srvcon As New ServerConnection
''' <summary>
''' متغير من النوع اتصالات السيكوال نستخدمه للاتصال بقاعدة البيانات
''' </summary>
''' <remarks></remarks>
Protected Shared SqlConnection As New SqlConnection
''' <summary>
''' مصفوفة لتخزين اسماء السيرفرات
''' </summary>
''' <remarks></remarks>
Protected Shared SrvNameArray() As String
''' <summary>
''' مصفوفة لتخزين اسماء قواعد البيانات
''' نستثني قواعد بيانات النظام
''' </summary>
''' <remarks></remarks>
Protected Shared srvdbnames() As String
''' <summary>
''' مصفوفة لتخزين اسماء الجداول في القاعدة المحددة
''' </summary>
''' <remarks></remarks>
Protected Shared TablesSrvDbs() As String
''' <summary>
''' متغير نصي نخزن فيه اسم القاعدة المحددة
''' </summary>
''' <remarks></remarks>
Protected Shared SqlDbName As String
''' <summary>
''' متغير نصي نخزن فيه نص الاتصال مع قاعدة البيانات
''' </summary>
''' <remarks></remarks>
Protected Shared _SqlConnectionString As String
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' <summary>
''' اجراء يقوم بالبحث عن السيرفرات المثبتة على الجهاز
''' و اضافتها الى مصفوفة السيرفرات ويعيد نص اتصال مع السيرفر
''' </summary>
''' <returns>يعود بقيمة نصية تمثل اسم السيرفر الاخير</returns>
''' <remarks>بامكانك استخدام مربع نص او قائمة لاستقبال المخرجات</remarks>
Private Shared Function LoadServ() As String
Dim Machine As String = Nothing
Dim rk As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server")
Dim instances As [String]() = DirectCast(rk.GetValue("InstalledInstances"), [String]())
If instances.Length > 0 Then
For Each element As [String] In instances
If element = "MSSQLSERVER" Then
Machine = (System.Environment.MachineName)
ReDim SrvNameArray(instances.Length - 1)
instances.CopyTo(SrvNameArray, 0)
Else
Machine = (System.Environment.MachineName + "\" + element)
ReDim SrvNameArray(instances.Length - 1)
instances.CopyTo(SrvNameArray, 0)
End If
Next
End If
srvcon = New ServerConnection(Machine)
Srv = New Server(srvcon)
Return Machine
End Function
''' <summary>
''' اجراء يقوم بتحميل قواعد البيانات في السيرفر المحدد
''' واضافتها الى مصفوفة القواعد
''' </summary>
''' <remarks></remarks>
Private Shared Sub loaddbnames()
Dim db As New Database
Dim j As Integer = 0
For i = 0 To Srv.Databases.Count - 1
If Not Srv.Databases(i).IsSystemObject And Not ((Srv.Databases(i).Name = "")) Then
ReDim Preserve srvdbnames(j)
db.Name = Srv.Databases(i).Name
srvdbnames.SetValue(db.Name, j)
j += 1
End If
Next
End Sub
''' <summary>
''' اجراء يقوم بتحميل جداول القاعدة المحددة
''' و اضافتها الى مصفوفة الجداول
''' </summary>
''' <remarks></remarks>
Private Shared Sub LoadTablenames()
If Not (SqlDbName Is Nothing) Or SqlDbName = "" Then
Dim Dbs As Database = Srv.Databases(SqlDbName)
ReDim TablesSrvDbs(Dbs.Tables.Count)
For i = 0 To Dbs.Tables.Count - 1
If Not Dbs.Tables(i).IsSystemObject Then
TablesSrvDbs.SetValue(Dbs.Tables(i).Name, i)
End If
Next
End If
End Sub
''' <summary>
''' اجراء يقوم بتاسيس الاتصال مع القاعدة المحددة
''' و يحتاج الى بارميتر نصي يمثل اسم القاعدة
''' </summary>
''' <param name="Dbname">اسم قاعدة البيانات كنص</param>
''' <returns>يعود بقيمة نصية تمثل نص الاتصال</returns>
''' <remarks></remarks>
Public Shared Function SetConnectionString_ForDb(ByVal Dbname As String) As String
'فحص طول مصفوفة السيرفرات
If SrvNameArray.Length <= 0 Then
LoadServ()
End If
'فحص طول مصفوفة القواعد
If srvdbnames.Length <= 0 Then
loaddbnames()
End If
'التاكد من وجود سيرفرات على الجهاز من خلال مصفوفة السيرفرات
If srvdbnames.Length <= 0 Then
Return MsgBox("تاكد من وجود سيرفرات على الجهاز", , "From SetConnectionString_ForDb")
Exit Function
End If
'التاكد من وجود قواعد على السيرفر من خلال مصفوفة القواعد
If srvdbnames.Length <= 0 Then
Return MsgBox("تاكد من وجود قواعد على السيرفر", , "From SetConnectionString_ForDb")
Exit Function
End If
'الحصول على اسم اخر سيرفر
Dim PcName As String = LoadServ()
'حلقة لفحص وجود القاعدة المحددةفي مصفوفة القواعد
'ثم اسنادها الى المتغير العام الذي يمثل اسم القاعدة
'ثم تحميل الجداول الموجودة في القاعدة الى مصفوفة الجداول
'و العودة بنص الاتصال مع القاعدة المحددة
For i As Integer = 0 To srvdbnames.Length - 1
If (Dbname = srvdbnames(i)) Then
SqlDbName = Dbname
LoadTablenames()
Return "Data Source=" & PcName & ";" & "Database=" & SqlDbName & ";" _
& "Integrated Security=true;"
End If
Next
'عرض رسالة في حال عدم تواجد القاعدة و اغلاق الاجراء
If SqlDbName = "" Then
Return MsgBox("القاعدة غير موجودة ضمن السيرفر", , "From SetConnectionString_ForDb")
Exit Function
End If
'العودة بنص الاتصال مع القاعدة المحددة
Return "Data Source=" & PcName & ";" & "Database=" & SqlDbName & ";" _
& "Integrated Security=true;"
End Function
''' <summary>
''' اجراء يقوم بفتح الاتصال مع قاعدة البيانات المحددة
''' </summary>
''' <returns>يعيد قيمة نصية تمثل حالة الاتصال</returns>
''' <remarks></remarks>
Public Shared Function OpenSqlConnection() As String
'فحص حالة الاتصال
If SqlConnection.State = ConnectionState.Closed Then
'ربط الاتصال مع القاعدة المحددة
_SqlConnectionString = SetConnectionString_ForDb(SqlDbName)
'اسناد نص الاتصال الى كائن الاتصال
SqlConnection.ConnectionString = _SqlConnectionString
'فتح الاتصال
SqlConnection.Open()
End If
'العودة بقيمة توضح حالة الاتصال
Return SqlConnection.State.ToString
End Function
''' <summary>
''' اجراء يقوم بغلق الاتصال مع قاعدة البيانات
''' </summary>
''' <returns>يعيد قيمة نصية تمثل حالة الاتصال</returns>
''' <remarks></remarks>
Public Shared Function CloseSqlConnection() As String
'فحص حالة الاتصال اذا كان مفتوح يتم اغلاقه
If SqlConnection.State = ConnectionState.Open Then
SqlConnection.Close()
End If
'العودة بقيمة توضح حالة الاتصال
Return GetConnectionState()
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#Region "Propertes"
''' <summary>
''' خاصية للقراءة فقط تعيد كائن اتصال
''' </summary>
''' <value>القيمة هي كائن اتصال</value>
''' <returns>يعيد كائن اتصال</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetSqlConnection() As SqlConnection
Get
Return SqlConnection
End Get
End Property
''' <summary>
''' خاصية للقراءة فقط
''' تعيد نص الاتصال
''' </summary>
''' <value>القيمة المعادة تمثل نص الاتصال</value>
''' <returns>القيمة المعادة تمثل نص الاتصال</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetSQlConnectionString() As String
Get
Return "Connection String : " & _SqlConnectionString
End Get
End Property
''' <summary>
''' خاصية للقراءة فقط
''' تعيد حالة الاتصال
''' </summary>
''' <value>القيمة المعادة تمثل حالة الاتصال</value>
''' <returns>القيمة المعادة تمثل حالة الاتصال</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetConnectionState As String
Get
Return "Connection State Is : " & SqlConnection.State.ToString
End Get
End Property
''' <summary>
''' خاصية للقراءة فقط تعيد اسم السيرفر المستخدم
''' </summary>
''' <value>القيمة المعادة تمثل اسم السيرفر</value>
''' <returns>القيمة المعادة تمثل اسم السيرفر</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetSrvName As String
Get
Return "Server Name : " & Srv.Name
End Get
End Property
''' <summary>
''' خاصية للقراءة فقط تعيد اسماء القواعد في السيرفر
''' </summary>
''' <value>القيمة المعادة تمثل نص يحمل اسماء القواعد في السيرفر</value>
''' <returns>القيمة المعادة تمثل نص يحمل اسماء القواعد في السيرفر</returns>
''' <remarks></remarks>
Shared ReadOnly Property GetDbNames() As String
Get
Dim DbName As String = ""
For i As Integer = 0 To srvdbnames.Length - 1
DbName += srvdbnames.GetValue(i) & vbCrLf
Next
Return DbName
End Get
End Property
''' <summary>
''' خاصية للقراءة فقط تعيد اسماء الجداول في القاعدة المحددة
''' </summary>
''' <value>القيمة المعادة تمثل نص يحمل اسماء الجداول في القاعدة المحددة</value>
''' <returns>القيمة المعادة تمثل نص يحمل اسماء الجداول في القاعدة المحددة</returns>
''' <remarks></remarks>
Public Shared ReadOnly Property GetTablesName() As String
Get
Dim Tablename As String = ""
For i As Integer = 0 To TablesSrvDbs.Length - 1
Tablename += TablesSrvDbs.GetValue(i) & vbCrLf
Next
Return Tablename
End Get
End Property
''' <summary>
''' خاصية للقراءة فقط تعيد نص يمثل اسماء السيرفرات
''' </summary>
''' <value>القيمة المعادة نص يمثل اسماء السيرفرات</value>
''' <returns>القيمة المعادة نص يمثل اسماء السيرفرات</returns>
''' <remarks></remarks>
Shared ReadOnly Property ShowServersNames() As String
Get
Dim SrvN As String = ""
For i As Integer = 0 To SrvNameArray.Length - 1
SrvN += SrvNameArray.GetValue(i) & vbCrLf
Next
Return SrvN
End Get
End Property
#End Region
End Class
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


