بسم الله الرحمن الرحيم
في البداية
للذين يحبون التطبيق المباشر متابعة الخطوات لاننا سنخرج في النهاية بمشروع او شبه مشروع يخدمنا في التعامل و يسهل مهامنا .
لنتوكل على الله و نبدأ
افتح VS و قم بانشاء مشروع جديد من النوع Windows Forms
لدينا الان FOrm1 ضمن المشروع نضيف بعض الادوات
-ListBox نسميها LstSrv
-TextBox نسميه TxtSrvName
-TextBox نسميه txtLogin
-TextBox نسميه txtPassword
-RadioButton نسميه chkWindowsAuthentication
-Button نسميه btnConnect
الخطوات التي سنقوم بعملها هي فحص السيرفرات المثيته على الجهاز و عرضها في LstSrv
اذا كان هناك سيرفرات طبعا
و بعدها سنحتاج للاتصال بالسيرفر المحدد باحدى الطريقتين اما باستخدام آمان وندوز او باستخدام اسم مستخدم و كلمة مرور.
ساقوم بعمل اجراء جديد نسميه LoadServ
الكود السابق سيقوم بالبحث ضمن سجل الجهاز عن اي سيرفر مثبت سواء كان نسخة Express أو اي نسخة اخرى و اضافتها الى Lstsrv
بعد توفر السيرفرات لدينا سنحاول الاتصال بها كما اسلفنا
اولا ساقوم باضافة بعض الخطوات التاكيدية للنظر فيما اذا كان هناك سيرفرات تم ادخالها الى LstSrv , و ان المستخدم قد اختار احد السيرفرات بالفعل و كذلك التاكد من نوع الاتصال لنبدأ بكتابة الاكواد
اظن ان الاكواد واضحة .
الان ناتي الى عملية الدخول الى السيرفر المحدد.
الان و لكي نعمل مع الكائن SQLSmo الذي تحدثنا عنه سابقا يجب ان نقوم باستيراد بعض المراجع لمشروعنا
وجب التنبيه انه يجب ان يكون لديك نسخة SQL Server مثبة على الجهاز لديك
يختلف موقع المراجع باختلاف نسخة SQL Sever المثبة لديك فقط اتبع ما يلي
النسخة المثبته لدي هي SQL Server 2008 R2
و المراجع المطلوبة موجودة في المسار التالي
C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies
الرقم 100 هو خاص برقم النسخة.
في حال كان لديك SQL Sever 2005 ستجد المراجع تحت الرقم 90 على ما اعتقد
ليصبح المسار الخاص بها كما يلي
C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies
و هكذا تجري العملية مع اختلاف النسخ و الله اعلم.
المراجع المطلوبة هي الملفات التالية
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SmoExtended
Microsoft.SqlServer.SqlEnum
طريقة اضافتها
في تبويب Solution Explorer
قف على References ثم Add Reference و حدد الملفات السابقة ضمن المسار الموجود لديك و الذي تحدده رقم نسخة SQL Server.
الان وبعد اضافة المراجع المطلوبة للمشروع و جب استيرادها للكلاس الذي نتعامل معه في اعلى كلاس Form1 نقوم باستيرادها كما يلي
الان اصبحنا جاهزين للعمل مع الكائن SQLSmo و التخاطب مع SQL Server .
سنقوم بتعريف بعض المتغيرات التي سنحتاجها للعمل في بداية الكلاس نقوم بتعريف المتغيرات التالية.
الان نعود الى زر الاتصال الخاص بنا لنفحص نوع الاتصال الذي قام المستخدم بتحديده
ان كان من النوع آمان وندوز او مشروط باسم مستخدم و كلمة مرور.
في زر الاتصال وتحت الاكواد السابقة التي فحصنا من خلالها تواجد السيرفرات في الجهاز و كذلك فحصنا في ما اذا كان المستخدم قد حدد سيرفراً ليتم الاتصال به
سنقوم بالاتصال بالسيرفر و عرض اسماء المستخدمين و كذلك القواعد المثبتة على السيرفر طبعا ليس قواعد النظام بل قواعدنا التي انشأناها نحن .
سنحتاج لبعض الادوات الجديدة لعرض اسماء المستخدمين و كذلك القواعد
- LstBox نسميها LstDbs لعرض قواعد البيانات
- ListBox نسميها LstLogin لعرض المستخدمين
تحت الاكواد السابقة نضيف الكود التالي
LoadLogins هو الاجراء الخاص بجلب اسماء المستخدمين و نوعهم و الكود الخاص به كما يلي
اما الاجراء LoadDbs فهو شبيه بالاجراء السابق كما يلي
هذا كل ما نحتاجه لعرض المستخدمين و القواعد المثبتة لدينا على السيرفر
اظن ان الاكواد سهلة و لا تحاتج للنقاش و على كل حال اي مشكلة في اي كود يرجى طرح السؤال و ان شاء الله ساقوم بالاجابة عنه.
بقي ان اضيف بعض الاكواد البسيطة لضبط بعض الخصائص هي زيادة في الحرص ليس الا
تابع و سترى
كود تعطيل مربعات النص الخاصة بالدخول في حال اختار المستخدم الدخول وفق آمان وندوز
بهذه الطريقة نكون قد حصلنا على مبتغانا , هناك الكثير من الامور الفنتازية التي يمكنك المرور عليها.
مثلا لعرض اسم ملف قاعدة البيانات المحددة و موقع القاعدة على الجهاز و الاسم الداخلي للقاعدة.
و كذلك عرض خصائص قاعدة البيانات المحددة.
يمكننا ذلك عن طريق كود بسيط و لعمل ذلك اضف بعض الادوات تحت القائمة LstbBs
- TextBox نسميه TextBox1 نعرض فيه اسم ملف قاعدة البيانات الملف من النوع Mdf
- TextBox نسميه TextBox2 نعرض فيه موقع قاعدة البيانات , المسار
- TextBox نسميه TextBox3 سنعرض فيه اسم القاعدة المختارة
- TextBox نسميه TextBox4 نعرض فيه الاسم الداخلي للملف
- ListBox نسميه LstDbProp نعرض فيه خواص القاعدة المحددة
الكود التالي سيفي بالغرض
و لعرض اسماء الجداول و الاستعلامات و الاجراءات المخزنة سنقوم باضافة بعض الادوات
- ListBox نسميه LstTable لعرض الجداول
- ListBox نسميه LstViews لعرض الاستعلامات
- ListBox نسميه LstStoredPro لعرض الاجراءات
- ListBox نسميه LstTbProp نعرض فيه اسماء الحقول و نوعها الخاصة بالجدول المحدد
الاجراء التالي سيتكفل بالمهمة
نضيف هذا الاجراء في نهاية الكود السابق ليصبح الكود كما يلي
الان اصبحت اغلب مكونات القاعدة لدينا بقي ان نعالج حقول الجدول المحدد و فق الكود التالي
لدينا الان كل ما نريد استطعنا جلب كائنات القاعدة و كذلك حقول الجدول المحدد .
بعض الامور التي تسترعي انتباهنا ماذا لو احببت ان اشاهد بنية استعلام ما او اجراء مخزن من خلال الكود, يمكننا ذلك و بسهولة , سنضيف بعض الادوات الجديدة.
- TextBox نسميه txtDscr نستخدمه لوصف الكائن المحدد و في اي قاعدة يقبع هذا الكائن
- TextBox نسميه txtBase نستخدمه لعرض ما يحتويه الكائمن من جمل استعلام
- ListBox نسميه lstParameters نستخدمة لعرض البارمترات في حال تم تحديد اجراء مخزن
, عرض اسم الباراميتر و تحديد نوعه.
اما عن الاكواد فهي كما يلي
للحصول على بنية استعلام
للحصول على بنية اجراء مخزن و عرض البارمترات التي يحتويها
الى هنا نكون قد اكتفينا اليوم , لقائنا يتجدد ان شاء الله لاستكمال بقية المشوار
نستودعكم الله , ولا تنسونا من صالح دعائكم
في البداية
للذين يحبون التطبيق المباشر متابعة الخطوات لاننا سنخرج في النهاية بمشروع او شبه مشروع يخدمنا في التعامل و يسهل مهامنا .

لنتوكل على الله و نبدأ
افتح VS و قم بانشاء مشروع جديد من النوع Windows Forms
لدينا الان FOrm1 ضمن المشروع نضيف بعض الادوات
-ListBox نسميها LstSrv
-TextBox نسميه TxtSrvName
-TextBox نسميه txtLogin
-TextBox نسميه txtPassword
-RadioButton نسميه chkWindowsAuthentication
-Button نسميه btnConnect
الخطوات التي سنقوم بعملها هي فحص السيرفرات المثيته على الجهاز و عرضها في LstSrv
اذا كان هناك سيرفرات طبعا
و بعدها سنحتاج للاتصال بالسيرفر المحدد باحدى الطريقتين اما باستخدام آمان وندوز او باستخدام اسم مستخدم و كلمة مرور.
ساقوم بعمل اجراء جديد نسميه LoadServ
PHP كود :
Private Sub LoadServ()
'تحميل السيرفرات الموجودة على الجهاز
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
LstSrv.Items.Add(System.Environment.MachineName)
Else
LstSrv.Items.Add(System.Environment.MachineName + "\" + element)
End If
Next
End If
End Sub
الكود السابق سيقوم بالبحث ضمن سجل الجهاز عن اي سيرفر مثبت سواء كان نسخة Express أو اي نسخة اخرى و اضافتها الى Lstsrv
بعد توفر السيرفرات لدينا سنحاول الاتصال بها كما اسلفنا
اولا ساقوم باضافة بعض الخطوات التاكيدية للنظر فيما اذا كان هناك سيرفرات تم ادخالها الى LstSrv , و ان المستخدم قد اختار احد السيرفرات بالفعل و كذلك التاكد من نوع الاتصال لنبدأ بكتابة الاكواد
PHP كود :
If LstSrv.Items.Count <= 0 Then
MessageBox.Show("لا يوجد سيرفرات مثبتة على الجهاز", "تسجيل الدخول", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
Exit Sub
ElseIf LstSrv.Items.Count > 0 And TxtServName.Text = "" Then
MessageBox.Show("يرجى تحديد السيرفر", "تسجيل الدخول", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
Exit Sub
End If
If chkWindowsAuthentication.Checked = False And txtLogin.Text = "" And txtPassword.Text = "" Then
MessageBox.Show("يرجى تحديد اسم المستخدم و كلمة المرور او استخدام امان وندوز", "تسجيل الدخول", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
Exit Sub
End If
اظن ان الاكواد واضحة .
الان ناتي الى عملية الدخول الى السيرفر المحدد.
الان و لكي نعمل مع الكائن SQLSmo الذي تحدثنا عنه سابقا يجب ان نقوم باستيراد بعض المراجع لمشروعنا
وجب التنبيه انه يجب ان يكون لديك نسخة SQL Server مثبة على الجهاز لديك
يختلف موقع المراجع باختلاف نسخة SQL Sever المثبة لديك فقط اتبع ما يلي
النسخة المثبته لدي هي SQL Server 2008 R2
و المراجع المطلوبة موجودة في المسار التالي
C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies
الرقم 100 هو خاص برقم النسخة.
في حال كان لديك SQL Sever 2005 ستجد المراجع تحت الرقم 90 على ما اعتقد
ليصبح المسار الخاص بها كما يلي
C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies
و هكذا تجري العملية مع اختلاف النسخ و الله اعلم.
المراجع المطلوبة هي الملفات التالية
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SmoExtended
Microsoft.SqlServer.SqlEnum
طريقة اضافتها
في تبويب Solution Explorer
قف على References ثم Add Reference و حدد الملفات السابقة ضمن المسار الموجود لديك و الذي تحدده رقم نسخة SQL Server.
الان وبعد اضافة المراجع المطلوبة للمشروع و جب استيرادها للكلاس الذي نتعامل معه في اعلى كلاس Form1 نقوم باستيرادها كما يلي
PHP كود :
Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Sdk.Sfc
الان اصبحنا جاهزين للعمل مع الكائن SQLSmo و التخاطب مع SQL Server .
سنقوم بتعريف بعض المتغيرات التي سنحتاجها للعمل في بداية الكلاس نقوم بتعريف المتغيرات التالية.
PHP كود :
Dim s As String
Dim conn As New ServerConnection()
Dim srv As New Server()
الان نعود الى زر الاتصال الخاص بنا لنفحص نوع الاتصال الذي قام المستخدم بتحديده
ان كان من النوع آمان وندوز او مشروط باسم مستخدم و كلمة مرور.
في زر الاتصال وتحت الاكواد السابقة التي فحصنا من خلالها تواجد السيرفرات في الجهاز و كذلك فحصنا في ما اذا كان المستخدم قد حدد سيرفراً ليتم الاتصال به
سنقوم بالاتصال بالسيرفر و عرض اسماء المستخدمين و كذلك القواعد المثبتة على السيرفر طبعا ليس قواعد النظام بل قواعدنا التي انشأناها نحن .
سنحتاج لبعض الادوات الجديدة لعرض اسماء المستخدمين و كذلك القواعد
- LstBox نسميها LstDbs لعرض قواعد البيانات
- ListBox نسميها LstLogin لعرض المستخدمين
تحت الاكواد السابقة نضيف الكود التالي
PHP كود :
If chkWindowsAuthentication.Checked = True Then
'اتصال موثوق
conn = New ServerConnection(LstSrv.SelectedItem.ToString)
srv = New Server(conn)
LstDbs.Items.Clear()
LoadLogins()
LoadDbs()
Else
'اتصال بكلمة مرور
conn = New ServerConnection(LstSrv.SelectedItem.ToString, txtLogin.Text, txtPassword.Text)
srv = New Server(conn)
LoadLogins()
LoadDbs()
End If
If srv.ConnectionContext.IsOpen Then
srv.ConnectionContext.Disconnect()
End If
LoadLogins هو الاجراء الخاص بجلب اسماء المستخدمين و نوعهم و الكود الخاص به كما يلي
PHP كود :
Private Sub LoadLogins()
For Each lognName As Login In srv.Logins
If Not lognName.IsSystemObject Then
If Not lognName.Name.Contains("#") Then
LstLogin.Items.Add(lognName.Name & " - " & lognName.LoginType.ToString)
End If
End If
Next
End Sub
اما الاجراء LoadDbs فهو شبيه بالاجراء السابق كما يلي
PHP كود :
Private Sub LoadDbs()
'تحميل القواعد باستثناء قواعد النظام
Try
'=================
LstDbs.Items.Clear()
Me.Cursor = Cursors.WaitCursor
For Each db As Database In srv.Databases
If Not db.IsSystemObject Then
LstDbs.Items.Add(db.Name)
End If
Next
Catch ox As SmoException
MsgBox(ox.Message.ToString)
Catch ex As Exception
MsgBox(ex.Message.ToString)
Finally
Me.Cursor = Cursors.Default
If srv.ConnectionContext.IsOpen Then
srv.ConnectionContext.Disconnect()
End If
End Try
End Sub
هذا كل ما نحتاجه لعرض المستخدمين و القواعد المثبتة لدينا على السيرفر
اظن ان الاكواد سهلة و لا تحاتج للنقاش و على كل حال اي مشكلة في اي كود يرجى طرح السؤال و ان شاء الله ساقوم بالاجابة عنه.
بقي ان اضيف بعض الاكواد البسيطة لضبط بعض الخصائص هي زيادة في الحرص ليس الا
تابع و سترى
كود تعطيل مربعات النص الخاصة بالدخول في حال اختار المستخدم الدخول وفق آمان وندوز
PHP كود :
Private Sub chkWindowsAuthentication_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkWindowsAuthentication.CheckedChanged
If chkWindowsAuthentication.Checked = True Then
txtLogin.Enabled = False
txtPassword.Enabled = False
Else
txtLogin.Enabled = True
txtPassword.Enabled = True
End If
End Sub
بهذه الطريقة نكون قد حصلنا على مبتغانا , هناك الكثير من الامور الفنتازية التي يمكنك المرور عليها.
مثلا لعرض اسم ملف قاعدة البيانات المحددة و موقع القاعدة على الجهاز و الاسم الداخلي للقاعدة.
و كذلك عرض خصائص قاعدة البيانات المحددة.
يمكننا ذلك عن طريق كود بسيط و لعمل ذلك اضف بعض الادوات تحت القائمة LstbBs
- TextBox نسميه TextBox1 نعرض فيه اسم ملف قاعدة البيانات الملف من النوع Mdf
- TextBox نسميه TextBox2 نعرض فيه موقع قاعدة البيانات , المسار
- TextBox نسميه TextBox3 سنعرض فيه اسم القاعدة المختارة
- TextBox نسميه TextBox4 نعرض فيه الاسم الداخلي للملف
- ListBox نسميه LstDbProp نعرض فيه خواص القاعدة المحددة
الكود التالي سيفي بالغرض
PHP كود :
Private Sub LstDbs_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LstDbs.SelectedIndexChanged
'تحميل معلومات القاعدة المحددة
If LstDbs.Items.Count > 0 Then
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
LstDbProp.Items.Clear()
Dim db As Database = srv.Databases(LstDbs.SelectedItem.ToString)
TextBox3.Text = db.Name
For Each fg As FileGroup In db.FileGroups
TextBox1.Text = (fg.Name)
For Each df As DataFile In fg.Files
TextBox2.Text = (df.FileName)
TextBox4.Text = df.Name
Next
Next
Dim database As Database = srv.Databases(LstDbs.SelectedItem.ToString)
LstDbProp.Items.Clear()
For Each prop As [Property] In database.Properties
LstDbProp.Items.Add(prop.Name + " - " + prop.Value.ToString)
Next
End If
If srv.ConnectionContext.IsOpen Then
srv.ConnectionContext.Disconnect()
End If
End Sub
و لعرض اسماء الجداول و الاستعلامات و الاجراءات المخزنة سنقوم باضافة بعض الادوات
- ListBox نسميه LstTable لعرض الجداول
- ListBox نسميه LstViews لعرض الاستعلامات
- ListBox نسميه LstStoredPro لعرض الاجراءات
- ListBox نسميه LstTbProp نعرض فيه اسماء الحقول و نوعها الخاصة بالجدول المحدد
الاجراء التالي سيتكفل بالمهمة
PHP كود :
Private Sub LoadAll()
LstTable.Items.Clear()
LstViews.Items.Clear()
LstStoredPro.Items.Clear()
Dim Dbs As Database = srv.Databases(LstDbs.SelectedItem.ToString)
Me.Cursor = Cursors.WaitCursor
'تحميل الجداول
Dim myTable As Table
For Each myTable In Dbs.Tables
If Not myTable.IsSystemObject Then
LstTable.Items.Add(myTable.Name)
End If
Next
'--------
'تحميل المناظر
Dim myviews As View
For Each myviews In Dbs.Views
If Not myviews.IsSystemObject Then
LstViews.Items.Add(myviews.Name)
End If
Next
'---------
'تحميل الاجراءات
Dim myStoredPro As StoredProcedure
For Each myStoredPro In Dbs.StoredProcedures
If Not myStoredPro.IsSystemObject Then
LstStoredPro.Items.Add(myStoredPro.Name)
End If
Next
Me.Cursor = Cursors.Default
End Sub
نضيف هذا الاجراء في نهاية الكود السابق ليصبح الكود كما يلي
PHP كود :
Private Sub LstDbs_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LstDbs.SelectedIndexChanged
'تحميل معلومات القاعدة المحددة
If LstDbs.Items.Count > 0 Then
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
LstDbProp.Items.Clear()
LstTbProp.Items.Clear()
Dim db As Database = srv.Databases(LstDbs.SelectedItem.ToString)
TextBox3.Text = db.Name
For Each fg As FileGroup In db.FileGroups
TextBox1.Text = (fg.Name)
For Each df As DataFile In fg.Files
TextBox2.Text = (df.FileName)
TextBox4.Text = df.Name
Next
Next
Dim database As Database = srv.Databases(LstDbs.SelectedItem.ToString)
LstDbProp.Items.Clear()
For Each prop As [Property] In database.Properties
LstDbProp.Items.Add(prop.Name + " - " + prop.Value.ToString)
Next
LoadAll() 'تحميل الجداول و الاستعلامات و الاجراءات
End If
If srv.ConnectionContext.IsOpen Then
srv.ConnectionContext.Disconnect()
End If
End Sub
الان اصبحت اغلب مكونات القاعدة لدينا بقي ان نعالج حقول الجدول المحدد و فق الكود التالي
PHP كود :
Private Sub LstTable_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LstTable.SelectedIndexChanged
Try
LstTbProp.Items.Clear()
If LstTable.Items.Count > 0 Then
For Each Col As Column In srv.Databases(LstDbs.SelectedItem.ToString).Tables(LstTable.SelectedItem.ToString).Columns
LstTbProp.Items.Add(Col.Name + " - " + Col.DataType.SqlDataType.ToString)
Next
End If
Catch ex As Exception
' MsgBox(ex.Message.ToString)
End Try
لدينا الان كل ما نريد استطعنا جلب كائنات القاعدة و كذلك حقول الجدول المحدد .
بعض الامور التي تسترعي انتباهنا ماذا لو احببت ان اشاهد بنية استعلام ما او اجراء مخزن من خلال الكود, يمكننا ذلك و بسهولة , سنضيف بعض الادوات الجديدة.
- TextBox نسميه txtDscr نستخدمه لوصف الكائن المحدد و في اي قاعدة يقبع هذا الكائن
- TextBox نسميه txtBase نستخدمه لعرض ما يحتويه الكائمن من جمل استعلام
- ListBox نسميه lstParameters نستخدمة لعرض البارمترات في حال تم تحديد اجراء مخزن
, عرض اسم الباراميتر و تحديد نوعه.
اما عن الاكواد فهي كما يلي
للحصول على بنية استعلام
PHP كود :
Private Sub LstViews_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LstViews.SelectedIndexChanged
If LstViews.Items.Count > 0 Then
Try
txtBase.Clear()
txtDscr.Clear()
lstParameters.Items.Clear()
Dim myview1 As View = srv.Databases(LstDbs.SelectedItem.ToString).Views(LstViews.SelectedItem.ToString)
txtDscr.Text = " بنية إستعلام " & " - " & srv.Databases(LstDbs.SelectedItem.ToString).Name & "/" & myview1.Name
txtBase.Text = myview1.TextBody
Catch ex As Exception
End Try
End If
End Sub
للحصول على بنية اجراء مخزن و عرض البارمترات التي يحتويها
PHP كود :
Private Sub LstStoredPro_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LstStoredPro.SelectedIndexChanged
If LstDbProp.Items.Count > 0 Then
Try
txtBase.Clear()
txtDscr.Clear()
lstParameters.Items.Clear()
Dim stp As StoredProcedure = srv.Databases(LstDbs.SelectedItem.ToString).StoredProcedures(LstStoredPro.SelectedItem.ToString)
txtDscr.Text = " بنية اجراء مخزن " & " - " & srv.Databases(LstDbs.SelectedItem.ToString).Name & "/" & stp.Name
txtBase.Text = stp.TextBody
For Each parm As Parameter In stp.Parameters
lstParameters.Items.Add(parm.Name & " - " & parm.DataType.ToString)
Next
Catch ex As Exception
End Try
End If
End Sub
الى هنا نكون قد اكتفينا اليوم , لقائنا يتجدد ان شاء الله لاستكمال بقية المشوار
نستودعكم الله , ولا تنسونا من صالح دعائكم
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


