- •Оглавление
- •Введение
- •Общая характеристика работы
- •Глава 1 построение логической модели
- •1.1 Постановка задачи
- •1.2 Описание предметной области
- •1.3 Описание логической структуры таблиц базы данных
- •1.4.Связи в таблицах
- •1.5 Описание программного обеспечения, используемого в работе
- •1.6 Система меню
- •Глава 2 состав отдельных модулей
- •2.1 Хранимые процедуры
- •2.2 Класс связующий информацию сайта с базой данной
- •2.3 Класс, выполняющий операции над данными в базе
- •2.4 Страница сайта, отображающая информацию с базы данных Newsletters.Aspx:
- •2.5 Страница сайта, отображающая информацию с базы данных Newsletters.Cs
- •2.6 Страница добавления (изменения) информации из базы данных AddEditNewsletters.Cs.
- •Заключение
- •Список использованных источников
- •Приложения:
- •Приложение a.
Глава 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; }}}}