Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломная работа_Резникова.doc
Скачиваний:
6
Добавлен:
13.11.2019
Размер:
804.86 Кб
Скачать

Глава 2 состав отдельных модулей

2.1 Хранимые процедуры

1) Процедура, которая извлекает все данные для строк таблицы tbh_Newsletters (Новости), с частичным поиском по полям:Subject, HtmlBody, AddedBy, AddedDate

ALTER PROCEDURE [dbo].[tbh_Newsletters_GetNewsletters]

(@param nvarchar(256))

AS

SET NOCOUNT ON

SELECT NewsletterID, AddedDate, AddedBy, Subject, HtmlBody, NewsletterSend

FROM tbh_Newsletters

Where (Subject Like @param) or (HtmlBody Like @param)or (AddedBy Like @param) or (CAST(AddedDate AS Nvarchar) like @param)

ORDER BY AddedDate DESC

2) Процедура извлекающая новость с указанным идентификатором

ALTER PROCEDURE dbo.tbh_Newsletters_GetNewsletterByID

( @NewsletterID int)

AS

SET NOCOUNT ON

SELECT NewsletterID, AddedDate, AddedBy, Subject, HtmlBody, NewsletterSend

FROM tbh_Newsletters

WHERE NewsletterID = @NewsletterID

3) Процедура на добавление новости:

ALTER PROCEDURE dbo.tbh_Newsletters_InsertNewsletter

(

@AddedDate datetime,

@AddedBy nvarchar(256),

@Subject nvarchar(256),

@HtmlBody ntext,

@NewsletterID int OUTPUT

)

AS

SET NOCOUNT ON

INSERT INTO tbh_Newsletters

(AddedDate, AddedBy, Subject, HtmlBody)

VALUES (@AddedDate, @AddedBy, @Subject, @HtmlBody)

SET @NewsletterID = scope_identity()

4) Процедура на изменение новости

ALTER PROCEDURE dbo.tbh_Newsletters_UpdateNewsletter

(

@NewsletterID int,

@Subject nvarchar(256),

@HtmlBody ntext

)

AS

UPDATE tbh_Newsletters

SET Subject = @Subject, HtmlBody = @HtmlBody

WHERE NewsletterID = @NewsletterID

5) Процедура на удаление новости:

ALTER PROCEDURE dbo.tbh_Newsletters_DeleteNewsletter

(

@NewsletterID int

)

AS

DELETE tbh_Newsletters WHERE NewsletterID = @NewsletterID

6) Процедура, которая извлекает из таблицы tbh_Newsletters последние три добавленные новости:

ALTER PROCEDURE dbo.tbh_Newsletters_GetNewsletters3

AS

SET NOCOUNT ON

SELECT TOP 3 NewsletterID, AddedDate, AddedBy, Subject, HtmlBody

FROM tbh_Newsletters

ORDER BY AddedDate DESC

7)Процедура, которая обновляет новость, изменяя поле NewsletterSend со значения по умолчанию равного 0, на значение 1 - признак того, что новость отправлена на e-mail подписчикам

ALTER PROCEDURE [dbo].[tbh_Newsletters_UpdateNewsletterSend]

(@NewsletterID int)

AS

UPDATE tbh_Newsletters

SET NewsletterSend = 1

WHERE NewsletterID = @NewsletterID

2.2 Класс связующий информацию сайта с базой данной

Для облегчения перемещения информации в базу данных AppliedMathematicsBase и обратно имеет смысл создать класс NewsletterDetails, который представит все поля в виде открытых свойств. Вот его полный код:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

namespace MB.AppliedMathematics.DAL.Details

{public class NewsletterDetails

{

public NewsletterDetails() { }

public NewsletterDetails(int id, DateTime addedDate, string addedBy, string subject, string htmlBody, bool newsletterSend)

{this.ID = id;

this.AddedDate = addedDate;

this.AddedBy = addedBy;

this.Subject = subject;

this.HtmlBody = htmlBody;

this.NewsletterSend = newsletterSend;}

private int _id = 0;

public int ID

{get { return _id; }

set { _id = value; }}

private DateTime _addedDate = DateTime.Now;

public DateTime AddedDate

{get { return _addedDate; }

set { _addedDate = value; }}

private string _addedBy = "";

public string AddedBy

{get { return _addedBy; }

set { _addedBy = value; }}

private string _subject = "";

public string Subject

{get { return _subject; }

set { _subject = value; }}

private string _htmlBody = "";

public string HtmlBody

{get { return _htmlBody; }

set { _htmlBody = value; }}

private bool _newsletterSend = false;

public bool NewsletterSend

{get { return _newsletterSend; }

set { _newsletterSend = value; }}}}