در این پروژه از پایگاه داده ی پیش فرضی که توسط ASP.NET Configuration در پوشه ی App_Data ایجاد خواهد شد استفاده نخواهیم کرد بلکه به صورت دستی نسبت به ایجاد و آماده سازی پایگاه داده مورد نظر برای استفاده در پروژه اقدام خواهیم کرد.
معمولا همراه با نصب ویژوال استودیو یک نسخه ی آزمایشی و رایگان از MS SQL Server با پسوند Express بر روی سیستم شما نصب می شود. در صورتی که در هنگام نصب ویژوال استودیو تیک مربوط به نصب MS SQL Server Express را برداشته اید می توانید از طریق نصاب ویژوال استودیو آن را نصب نمایید. ما قصد داریم بانک اطلاعاتی مورد نظر خود را با استفاده از ابزار Server Explorer موجود در ویژوال استودیو بر روی این نصب از MS SQL Server ایجاد نماییم.
تذکر: در این تاپیک از نسخه ی 2012 نرم افزار ویژوال استودیو استفاده خواهیم کرد. در صورتی که از نسخه های قدیمی تر ویژوال استودیو استفاده می کنید ممکن است نیاز داشته باشید در مطالب گفته شده کمی تغییر ایجاد نمایید.
ویژوال استودیو را باز کرده و از پنجره ی Server Explorer بر روی گزینه ی Data Connections کلیک راست کرده و از منوی ظاهر شده گزینه ی Create New SQL Server Database را انتخاب کنید.
در پنجره ی ظاهر شده در قسمت Server name مقدار sqlexpress\. که همان آدرس سرور MS SQL Server Express است را وارد نمایید. همچنین در قسمت New database name مقدار db_eShop را وارد نمایید. این نام پایگاه داده ای است که برای این پروژه قصد ایجاد آن را داریم.
سپس بر روی دکمه ی OK کلیک کنید تا پایگاه داده ی مورد نظر ما ایجاد شده و به لیست پایگاه های داده ی موجود در پنجره ی Server Explorer اضافه شود.
بر روی مثلث کوچک کنار نام دیتابیس کلیک کرده تا زیر شاخه های دیتابیس ظاهر شود. سپس بر روی شاخه ی Tables کلیک راست کرده و گزینه ی Add New Table را انتخاب نمایید.
در پنجره ی ظاهر شده فیلد های مورد نظر را مطابق شکل زیر وارد کرده و سپس جدول مورد نظر را با نام eshop_Products ذخیره کنید. دقت کنید که فیلد Id کلید اصلی این جدول می باشد. همچنین فیلد CreateDate مقدار پیش فرض خود را از تابع ()getdate دریافت می نماید.
حال نوبت به ایجاد روال های ذخیره شده (Stored Procedures) می رسد. در این قسمت پنج روال ذخیره شده زیر را برای انجام عملیات انتخاب لیست محصولات، انتخاب یک محصول خاص و ایجاد، ویرایش و حذف یک محصول خاص، ایجاد خواهیم کرد. برای این منظور بر روی شاخه ی Stored Procedures کلیک راست کرده و گزینه ی Add New Stored Procedure را انتخاب کنید.
در پنجره ی ظاهر شده دستورات زیر را وارد کرده و دکمه ی Update (در نسخه های قدیمی تر دکمه ی Execute) را کلیک کنید تا روال ذخیره شده ی مورد نظر ایجاد شود.
روال ذخیره شده ی انتخاب لیست محصولات:
CREATE PROCEDURE [dbo].[eshop_Products_SelectAll]
AS
SELECT Id,
Name,
Title,
MetaDescription,
MetaKeywords,
Content,
Price,
[Weight],
SerialNumber,
CreateDate
FROM dbo.eshop_Products
ORDER BY CreateDate DESC
RETURN 0
برای چهار روال دیگر نیز به همین شکل عمل کرده و دستورات زیر را وارد کنید.
روال ذخیره شده ی انتخاب محصول:
CREATE PROCEDURE [dbo].[eshop_Products_SelectItem]
@Id UNIQUEIDENTIFIER
AS
SELECT Id,
Name,
Title,
MetaDescription,
MetaKeywords,
Content,
Price,
[Weight],
SerialNumber,
CreateDate
FROM dbo.eshop_Products
WHERE Id = @Id
RETURN 0
روال ذخیره شده ی افزودن محصول:
CREATE PROCEDURE [dbo].[eshop_Products_InsertItem]
@Id UNIQUEIDENTIFIER,
@Name NVARCHAR(50),
@Title NVARCHAR(50),
@MetaDescription NVARCHAR(300),
@MetaKeywords NVARCHAR(800),
@Content NVARCHAR(MAX),
@Price MONEY,
@Weight INT,
@SerialNumber NVARCHAR(50)
AS
INSERT dbo.eshop_Products
(
Id,
Name,
Title,
MetaDescription,
MetaKeywords,
Content,
Price,
[Weight],
SerialNumber
)
VALUES
(
@Id,
@Name,
@Title,
@MetaDescription,
@MetaKeywords,
@Content,
@Price,
@Weight,
@SerialNumber
)
RETURN 0
روال ذخیره شده ی ویرایش محصول:
CREATE PROCEDURE [dbo].[eshop_Products_UpdateItem]
@Id UNIQUEIDENTIFIER,
@Name NVARCHAR(50),
@Title NVARCHAR(50),
@MetaDescription NVARCHAR(300),
@MetaKeywords NVARCHAR(800),
@Content NVARCHAR(MAX),
@Price MONEY,
@Weight INT,
@SerialNumber NVARCHAR(50)
AS
UPDATE dbo.eshop_Products
SET Id = @Id,
Name = @Name,
Title = @Title,
MetaDescription = @MetaDescription,
MetaKeywords = @MetaKeywords,
Content = @Content,
Price = @Price,
[Weight] = @Weight,
SerialNumber = @SerialNumber
WHERE Id = @Id
RETURN 0
روال ذخیره شده ی حذف محصول:
CREATE PROCEDURE [dbo].[eshop_Products_DeleteItem]
@Id UNIQUEIDENTIFIER
AS
DELETE dbo.eshop_Products
WHERE Id = @Id
RETURN 0