Разработка информационной системы «БАЗА ДАННЫХ БИБЛИОТЕКИ»

Автор работы: Пользователь скрыл имя, 20 Января 2013 в 02:37, курсовая работа

Краткое описание

Информационные технологии становятся неотъемлемой частью жизни третьего тысячелетия. Сегодняшние читатели получат профессиональные знания и личностно осознают себя, в том числе и за счет нетрадиционных форм доступа к информационным ресурсам. Поэтому глубина и направленность в раскрытии библиотечных фондов средствами информатизации во многом определяют возможности их использования для саморазвития и самообучения, в творчестве и научно-исследовательской деятельности.

Содержание

ВВЕДЕНИЕ…………………………………………………………………3
1. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ………………………………4
2. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ ИНФОРМАЦИОННОЙ СИСТЕМЫ………………………………………………………………………...5
3. РАЗРАБОТКА БАЗЫ ДАННЫХ…………………………………….....9
4. РАЗРАБОТКА КЛИЕНТСКОЙ ЧАСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ……………………………………………………………………….16
5. ПРОВЕРКА РАБОТОСПОСОБНОСТИ РАЗРАБОТАННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ…………………………………………...22
ЗАКЛЮЧЕНИЕ…………………………………………………………...31
ПРИЛОЖЕНИЕ А………………………………………………………...33
ПРИЛОЖЕНИЕ Б…………………………………

Вложенные файлы: 1 файл

kurs.doc

— 2.64 Мб (Скачать файл)

Рис.Б.1. Структура Базы Данных

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ В

Листинг программы

В данной курсовой работе имеются классы, работающие с информацией базы данных.Все они однотипны, поэтому приведем пример кода класса "BooksModel":

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using LibraryProject.Interfaces;

 

namespace LibraryProject.Models

{

    class BooksModel : IBooksModel

    {

        Connection conn;

 

        public BooksModel()

        {

            conn = new Connection();

        }

 

        public List<string[]> GetAllBooks()

        {

            string query = "SELECT * FROM Books";

            var res = conn.Query(query);

            return res;

        }

 

        public string[] GetBookByName(string bookName)

        {

            string query = "SELECT * FROM Books WHERE Title = '" + bookName + "'";

            var res = conn.Query(query);

            if (res.Count == 0)

                return null;

            return res.First();

        }

       

        public void AddBook(string title, string author, string publishingHouse, int publishingYear, int pagesCount, int IllustrationCount, decimal cost, string faculties)

        {

            string query = "INSERT INTO Books VALUES ('" + title + "', '" + author + "', '" + publishingHouse + "', '" + publishingYear + "', '" + pagesCount + "', '" + IllustrationCount + "', '"+cost+"', '"+faculties+"')";

            var res = conn.Query(query);

        }

 

        public List<string[]> GetBookByAuthor(string author)

        {

            string query = "SELECT * FROM Books WHERE Author = '" + author + "'";

            var res = conn.Query(query);

            if (res.Count == 0)

                return null;

            return res;

        }

 

        public List<string[]> GetBookByHouse(string house)

        {

            string query = "SELECT * FROM Books WHERE PublishingHouse = '" + house + "'";

            var res = conn.Query(query);

            if (res.Count == 0)

                return null;

            return res;

        }

 

        public void UpdateBook(int id,

            string title, string author,

            string publishingHouse,

            int publishingYear,

            int pagesCount,

            int IllustrationCount,

            decimal cost, string faculties)

        {

                        string query = "UPDATE Books SET Title = '" + title + "', Author = '" + author + "', PublishingHouse = '" + publishingHouse + "', PublishingYear = " + publishingYear + ", PagesCount = " + pagesCount + ", IllustrationCount = " + IllustrationCount + ", Cost = " + (int)cost + ", Faculties = '" + faculties + "' WHERE Id = " + id;

            var res = conn.Query(query);

        }

 

        public void DeleteBook(int bookId)

        {

 

            string query = "DELETE FROM OutstandingBooks  WHERE OutstandingBooks.ApplicationId IN (SELECT Applications.Id FROM Applications, BookInFilial WHERE BookInFilialId = BookInFilial.Id AND  BookInFilial.BookId = " + bookId + ")";

            conn.Query(query);

            query = "DELETE FROM Applications WHERE Applications.BookInFilialId IN (SELECT BookInFilial.Id FROM BookInFilial WHERE BookInFilial.BookId = " + bookId+")";

            conn.Query(query);

            query = "DELETE FROM BookInFilial WHERE  BookInFilial.BookId = " + bookId;

            conn.Query(query);

            query = "DELETE FROM Books WHERE id = " + bookId;

            conn.Query(query);

        }

    }

}

 

Имеется класс "Connection", непосредственно взаимодействующий с базой данных:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SqlClient;

 

namespace LibraryProject.Models

{

    class Connection

    {

        string str;

        SqlConnection connection;

        public static bool flag;

 

        public Connection()

        {

            str = Properties.Settings.Default.LibraryDbConnectionString;

            connection = new SqlConnection(str);

        }

 

        public List<string[]> Query(string query)

        {

            string[] arr;

            List<string[]> res = new List<string[]>();

          

            SqlCommand command;

            connection.Open();

            flag = true;

            command = new SqlCommand(query, connection);

            if (query.Contains("UPDATE") || query.Contains("DELETE") || query.Contains("INSERT"))

            {

                command.ExecuteScalar();

                connection.Close();

                return null;

            }

            else

            {

                SqlDataReader dataReader = command.ExecuteReader();

 

                while (dataReader.Read())

                {

                    arr = new string[dataReader.FieldCount];

                    for (int i = 0; i < dataReader.FieldCount; i++)

                        arr[i] = dataReader[i].ToString();

                    res.Add(arr);

                }

                connection.Close();

                flag = false;

                return res;

            }

        }

    }

}

 

Также имеется  класс "Login", глобальный класс, который используется для авторизации пользователей и определения роли пользователя:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using LibraryProject.Models;

 

namespace LibraryProject

{

    class Login

    {

        string userName = "";

        string roleName;

        int userId = -1;

        static Login login = new Login();

 

        public string UserName

        {

            get { return userName; }

        }

        public string RoleName

        {

            get { return roleName; }

 

        }

        public int UserId

        {

            get { return userId; }

        }

 

        private Login() { }

 

        public static Login GetObject()

        {

            return login;

        }

 

        public bool GetLoginStatus(string userLogin, string password)

        {

            if (userName == "")

            {

                UserModel model = new UserModel();

                bool validate = model.ValidateUser(userLogin, password);

 

                if (validate == true)

                {

                    userName = model.GetUserByLogin(userLogin)[4];

                    userId = Convert.ToInt32(model.GetUserByLogin(userLogin)[0]);

                    if (Convert.ToBoolean(model.GetUserByLogin(userLogin)[1]) == true)

                        roleName = "Admin";

                    else

                        roleName = "User";

                    return true;

                }

            }

            return false;

        }       

 

        public void DectroySession()

        {

            userName = "";

            roleName = "";

            userId = -1;

        }

    }

}

 

Также имеются  абстрактные классы, описывающие  интерфейс программы(может содержать (и не содержать) абстрактные методы и свойства).Например, класс"IBooksModel":

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using LibraryProject.Models;

 

namespace LibraryProject.Interfaces

{

    interface IBooksModel

    {

        List<string[]> GetAllBooks();

        string[] GetBookByName(string bookName);

        void AddBook(string title,

                            string author,

                            string publishingHouse,

                            int publishingYear,

                            int pagesCount,

                            int IllustrationCount,

                            decimal cost,

                            string faculties);

        void UpdateBook(int id,

            string title,

            string author,

            string publishingHouse,

            int publishingYear,

            int pagesCount, int IllustrationCount, decimal cost, string faculties);

        void DeleteBook(int bookId);

    }

}

 

 


Информация о работе Разработка информационной системы «БАЗА ДАННЫХ БИБЛИОТЕКИ»