الاتصال بـ Sql Server واستخدام Stored Procedure



- للاتصال بالسيرفر يجب عليك انشاء كائن من الفئة Connection ثم ارفاق نص الاتصال (Connection String) به والذي

يحتوي علي خصائص الاتصال من User Name , Password , .Net Data Provider .


- نص الاتصال Connection String :

يأخذ نص الاتصال الصيغه التاليه في ابسط اشكاله :-
Data Source=myServerAddress;Initial Catalog=myDataBase;User 
Id=myUsername;Password=myPassword;

- في هذا الرابط يوجد مرجع لنصوص الاتصال في اشكال متعدده  

- يمكن ايضا من خلال الفيجوال استديو تحديد نص الاتصال كالتالي
  
  أ - من شريط الادوات بالضغط علي
       Project  ثم اختيار Application proprieties  كما في الشكل الاتي :





































 ب - بعد ذلك نحدد الاختيار Settings ونقوم باضافه القيم كاسم الاتصال في حقل Name واختيار النوع Connection String من 
      حقل Type




جـ -  و عند الوقوف في حقل Value سيظهر button قم بالضغط عليه ليظهر لك مربع كما في الشكل الاتي تقوم من خلاله بتحديد اسم
     السيرفر وقاعده البيانات واسم المستخدم وكلمه المرور ( اذا لم تستخدم تصديق الويندوز ) ثم عمل Test ليظهر لك تأكيد بأن النص 
    يعمل بشكل صحيح انظر الي الشكل الاتي : 




د - بالضغط علي OK سيكون لديك نص الاتصال في حقل الـ Value يمكنك نسخه او ارسال مرجع الـ Application Settings 
    باسم الاتصال المحدد في حقل الـ Name 


- ملحوظه : في حاله استخدام  الخطوات السابقة يكون لديك الان نص اتصال مرفق بالملف  app.config  يمكن تغيره بدون 
  الدخول الي الكود .

- الان سيتم انشاء الاتصال بعد اضافه مرجع الي System.Data.SqlClient

في المثال التالي سنستخدم SQL Server Connection Pooling وهو تكنيك في الاتصال لتقليل عدد مرات  فتح الاتصال 
وبالتالي تقليل الضغط والازدحام علي الشبكه وفي هذا الرابط  مرجع له 


بعد اضافه مرجع الي SqlClient كالتالي :
C#
using System.Data.SqlClient ;
VB
Import System.Data.SqlClient

- الان هذا هو كود الاتصال بـ Sql Server  وتنفيذ الـ Stored Procedure من خلال الكائن sqlcommand : 

-  ملحوظه : سيتم استخدام الـ Stored Procedure المذكور في المثال في هذا الرابط 


----------------------------------------------------------------------------------------------------------------

           using (SqlConnection MyConn = new SqlConnection(connString))
                {

             using (SqlCommand Command = new SqlCommand("SP_UpdataProduct",ConnString))
                    {
                        Command.CommandType = System.Data.CommandType.StoredProcedure;
                        Command.Parameters.AddWithValue("@ProId", Value);
                        Command.Parameters.AddWithValue("@ProName", Value);
                        Command.Parameters.AddWithValue("@ProUnit ", Value);
                        Command.Parameters.AddWithValue("@ProPrice", Value);
                        Command.Connection.Open();
                        Command.ExecuteNonQuery();
                    }
                }
----------------------------------------------------------------------------------------------------------------