يعد ASP.NET وSQL SERVER الأفضل بالنسبة للبرامج الأكبر حجمًا، وعادةً ما يكون SQL SERVER هو الخيار الأول فقط لمن هم اقتصاديون جدًا في استخدام ACCESS. عند استخدام SQL SERVER، من أجل جعل قاعدة البيانات أكثر كفاءة، يتم استخدام الإجراءات المخزنة بشكل عام لأن الإجراءات المخزنة يتم تنفيذها بسرعة ويمكنها تنفيذ بعض الاستعلامات المتقدمة والوظائف الأخرى. على سبيل المثال، يتم تمرير بعض معلمات البيانات، ولكن قد تكون إجراءات SQL التي يتم تنفيذها مختلفة.
فيما يلي مثال لإنشاء دور جديد والمطالبة بعدم تكرار اسم الدور. وفيما يلي إجراء مخزن.
إنشاء الإجراء sp_AccountRole_Create@CategoryID int،
@RoleName nvarchar(10),
@ الوصف نفارتشار (50)،
@RoleID إخراج int
مثل
قم بتعريف @Count int- معرفة ما إذا كانت هناك سجلات بنفس الاسم
حدد @Count = Count(RoleID) من Account_Role حيث
اسم الدور = @RoleNameإذا @العدد = 0
أدخل في Account_Role
(معرف الفئة، اسم الدور، الوصف) القيم
(@CategoryID، @RoleName، @Description)تعيين @RoleID = @@IDENTITY
العودة 1
يذهب
SqlConnection DbConnection = new SqlConnection(mConnectionString);
SqlCommand Command = new SqlCommand( "sp_AccountRole_Create", DbConnection );
DbConnection.Open(connectString);
// قم بتعيين سمة SqlCommand إلى إجراء مخزن
Command.CommandType = CommandType.StoredProcedure;Command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);
Command.Parameters.Add("@RoleName", SqlDbType.NVarChar, 10);
Command.Parameters.Add("@Description", SqlDbType.NVarChar, 50);
Command.Parameters.Add("@RoleID", SqlDbType.Int, 4);
//قيمة الإرجاع
Command.Parameters.Add("قيمة الإرجاع"،
SQLDbType.Int،
4، // الحجم
اتجاه المعلمة. قيمة الإرجاع،
خطأ، // لاغية
0، // دقة البايت
0، // مقياس البايت
سلسلة فارغة،
داتا روو فيرسيون. الافتراضي،
باطل )؛Command.parameters["@CategoryID"].value = Permission.CategoryID;
Command.parameters["@RoleName"].value = Permission.PermissionName;
Command.parameters["@Description"].value = Permission.Description;
// يمكن إرجاع قيمة المعرف الجديدة
Command.parameters["@RoleID"].Direction = ParameterDirection.Output;introwsAffected = Command.ExecuteNonQuery();
نتيجة int = Command.parameters["Returnvalue"].value;
int newID = Command.parameters["@RoleID"].value;
الوظيفة قوية جدًا، يمكنك الحصول على ثلاث قيم، وهي قيمة تأثير الصف، وقيمة إرجاع الإجراء المخزن، وقيمة المعرف الجديد.