Desenvolva um sistema de gerenciamento de biblioteca de arquitetura de três camadas (WinForm) baseado em C#+SQL Server2008【100010014】

sistema de gerenciamento de biblioteca

1. Antecedentes e significado do projeto

Hoje, devido ao rápido desenvolvimento da tecnologia da informação, a função das bibliotecas como mídia de informação do conhecimento social está se tornando cada vez mais importante. , recuperação inteligente, consulta de referência digital, O campo da biblioteca digital tornou-se a direção de pesquisa do sistema de biblioteca.

Desde o desenvolvimento da gestão, a tendência geral de desenvolvimento abrangente tornou-se cada vez mais evidente. Introduzir novos métodos e absorver novas ideias é condição necessária para promover o desenvolvimento do sistema de bibliotecas. Portanto, o estudo do sistema de biblioteca deve aderir à integração de teoria e tecnologia e realizar pesquisas interdisciplinares; deve aderir à combinação de teoria e prática e responder às questões mais urgentes levantadas pela realidade; deve aderir a princípios básicos pesquisa e aplicação A pesquisa, a primeira desempenha um papel orientador na segunda, e a segunda, por sua vez, enriquece e desenvolve a primeira; lidar corretamente com a relação entre realidade, história e teoria é um método importante para promover o estudo dos sistemas de gestão.

2. Análise de demanda

2.1 Análise de Situação

No passado, as pessoas usavam o método manual tradicional para gerenciar os negócios diários da biblioteca, e o processo de operação era pesado. Ao pedir um livro emprestado, o leitor primeiro entrega o livro a ser emprestado e o cartão da biblioteca ao funcionário, depois o funcionário coloca o cartão de informações de cada livro e o cartão da biblioteca do leitor em uma pequena coluna e, finalmente, o cartão da biblioteca e cada livro Preencha as informações de empréstimo no recibo de empréstimo publicado. Ao devolver os livros, os leitores primeiro entregam os livros que desejam devolver à equipe e, em seguida, a equipe encontra os cartões de livro correspondentes e os cartões de empréstimo de acordo com as informações do livro e preenche as informações de devolução do livro correspondente.

Existem muitos livros na biblioteca da escola, se gerenciados manualmente, a carga de trabalho será muito pesada. As estatísticas e o gerenciamento de livros se tornarão uma dor de cabeça e será muito inconveniente para os leitores pegar livros emprestados para registrar. Neste momento, usar computadores para executar essas tarefas de gerenciamento estatístico pode trazer grande comodidade para nossas vidas e melhorar a eficiência do trabalho. Devido a condições limitadas, apenas o teclado pode ser usado para inserir as informações do livro, por isso é um pouco problemático inserir o número ISBN do livro. Portanto, no design do curso, o número do livro é usado. Na vida real, será mais preciso e eficiente inserir o número ISBN por digitalização.

2.2 Requisitos Funcionais do Sistema

O sistema de gerenciamento de biblioteca é um software de gerenciamento desenvolvido para a equipe da biblioteca realizar a função de gerenciamento de informações de livros e informações do usuário.

Este sistema pode principalmente completar as seguintes funções:

  • Gerenciamento de informações do livro (consultar, modificar, adicionar, excluir)

  • Gerenciamento de informações do usuário (consultar, modificar, adicionar, excluir)

  • Operação de empréstimo, operação de devolução, operação de renovação, exibição de registro de empréstimo

  • Gerenciamento de classificação de livros e usuários (consultar, modificar, adicionar, excluir)

2.3 Objetivos do Projeto do Sistema

  • As tabelas de dados no sistema são razoavelmente projetadas, eficientes e têm menos redundância de dados

  • Interface de software amigável e alta segurança

  • Fácil de manter e conveniente para atualizar

3. Análise de Viabilidade do Sistema

3.1 Viabilidade Técnica

O ambiente de desenvolvimento do sistema de gerenciamento de biblioteca é Visual Studio 2010, Microsoft SQL Server 2008R2 SP3. O sistema é realizado usando o modo interativo C/S. O sistema tem estabilidade, segurança, estética e avanço. No processo de desenvolvimento do sistema nesta fase, ele é totalmente capaz de usar os recursos humanos e materiais existentes para desenvolvê-lo. Como um produto em fases, há um grande espaço para desenvolvimento futuro, e o método de implementação é gradualmente simples e fácil .Portanto, o sistema de gerenciamento de biblioteca é tecnicamente viável. Sob as restrições atuais, os objetivos funcionais do sistema podem ser alcançados.

3.2 Viabilidade econômica

A equipe de professores e alunos do curso de informática pode realizar a manutenção diária do sistema com menos carga horária e menor gasto econômico.

3.3 Viabilidade da Operação

Todas as interfaces têm um estilo unificado, e os estilos de texto da página de diferentes colunas são unificados. Os recursos da plataforma de gerenciamento de livro são destacados. O sistema é amigável e fácil de operar, mesmo para professores sem base de computador.

4. Tecnologias relacionadas usadas

4.1C#

C# é uma linguagem de programação de alto nível orientada a objeto lançada pela Microsoft que é executada no .NET Framework. E programado para aparecer no palco do Microsoft Professional Developers Forum (PDC). C# é uma linguagem de programação orientada a objetos segura, estável, simples e elegante, derivada de C e C++. Ele herda os recursos poderosos de C e C++ enquanto remove alguns de seus recursos complexos (como a ausência de macros e a proibição de herança múltipla). C# combina a operação visual simples do VB e a alta eficiência operacional do C++.Com sua poderosa capacidade de operação, estilo de sintaxe elegante, recursos de linguagem inovadores e suporte conveniente de programação orientada a componentes, tornou-se a linguagem preferida para desenvolvimento .NET.

4.2 Servidor SQL

O SQL Server é um sistema de gerenciamento de banco de dados relacional (DBMS) desenvolvido e promovido pela Microsoft. Foi originalmente desenvolvido em conjunto pela Microsoft, Sybase e Ashton-Tate, e a primeira versão do OS/2 foi lançada em 1988. O Microsoft SQL Server foi atualizado continuamente nos últimos anos. Em 1996, a Microsoft lançou o SQL Server 6.5; em 1998, o SQL Server 7.0 reuniu-se com os usuários; o SQL Server 2000 foi lançado pela Microsoft em 2000 e a versão mais recente foi lançada atualmente em 2017. SQLSERVER 2017.

5. Projeto detalhado do sistema

5.1 Projeto Geral

Usando Microsoft SQL Server 2008R2 sp3 e Visual Studio 2010 como ambiente de desenvolvimento, usando tecnologia de banco de dados e tecnologia de desenvolvimento .net, usando C# arquitetura de três camadas: camada de apresentação (UI (User Interface)), camada de lógica de negócios (BLL (Business Logic Layer ) ), camada de acesso a dados (DAL (Data Access Layer)) mais biblioteca de classes de entidade (Modelo), para desenvolver este sistema de gerenciamento de livros.

5.2 Projeto de banco de dados

5.2.1 Diagrama de Fluxo de Dados

Diagrama de fluxo de dados

5.2.2 Dicionário de dados

tabela admin

Tabela BookInfo

Tabela BookType

Tabela de Retorno de Empréstimo

tabela de classe

mesa de departamento

Tabela do leitor

Tabela ReaderType

5.2.3 Estrutura lógica

  • Admin (ID de administrador, senha, tipo, comentários)

  • Informações do livro (ID do livro, título, tempo de armazenamento, autor, código pinyin, tradutor, idioma, número de páginas, preço, layout de impressão, local de armazenamento, código ISBN, versão, comentários)

  • BookType (BookTypeID, BookTypeName)

  • Empréstimo e devolução de livros (ID de empréstimo e devolução de livros, ID do livro, ID do usuário, hora do empréstimo, hora da devolução do livro, hora real da devolução do livro, multas, tempos de renovação, notas)

  • UserClass(ClassID, ClassName)

  • Faculdade do usuário (ID da faculdade, nome da faculdade)

  • Informações do usuário (ID do usuário, nome do usuário, horário de registro, período de validade, tipo de usuário, faculdade, classe, número do ID, sexo, QQ, telefone, e-mail, endereço, observações)

  • user_academy(user_type_id, user_type_name)

5.3 Projeto de segurança

Existem dois tipos de administradores no sistema: o primeiro são os administradores comuns, que têm todas as permissões, exceto o gerenciamento de administrador; o segundo são os superadministradores, que têm autoridade máxima e podem modificar os administradores comuns. Essa configuração evita que os dados do banco de dados sejam adulterados à vontade.

Diagrama de design conceitual do sistema

6. Análise do esquema

6.1 Análise de Operabilidade

Todas as páginas possuem um estilo unificado, sendo o estilo do texto da página unificado.Na concepção, destacam-se as características da plataforma de gerenciamento de livros para obter maior eficiência na navegação.

6.2 Análise Avançada

Este sistema é implementado usando o modo interativo C/S, usando C# arquitetura de três camadas: camada de apresentação (UI (User Interface)), camada de lógica de negócios (BLL (Business Logic Layer)), camada de acesso a dados (DAL (Data Access Layer ) )) Juntamente com a biblioteca de classe de entidade (Model), o desenvolvimento deste sistema de gerenciamento de livro alcançou a estabilidade, segurança, estética e avanço do sistema.

6.3 Análise de robustez

O sistema ainda está em fase de conclusão das funções mais básicas, e não haverá um grande número de visitas de usuários.O servidor utiliza o Alibaba Cloud, que possui boa robustez.

6.4 Análise de Escalabilidade

A página do sistema é simples e é muito conveniente adicionar novas páginas.As novas funções não entrarão em conflito com as funções existentes e têm forte escalabilidade. Além disso, o banco de dados do sistema pode ser expandido ou reduzido dinamicamente conforme a escala da escola muda.

6.5 Análise de Manutenibilidade

O programa é simples, os dados do banco de dados são menos redundantes, o banco de dados pode ser restaurado usando arquivos de log e a capacidade de manutenção é forte.

Sete, teste do sistema

7.1 Visão geral do teste

Escreva casos de teste e teste-os, encontre bugs e corrija-os.

7.2 Recursos e ambiente de teste

7.2.1 Configuração de hardware

Modelo do computador: Ares Z6S1

Processador: Intel(R) Core™ i7-4720HQ CPU @2.60GHz 2.60GHz

7.2.2 Configuração do software

Sistema operacional: sistema operacional Windows 10 Professional Edition de 64 bits

Software utilizado: Microsoft Visual Studio 2010

Servidor SQL 2008R2 SP3

7.3 Conteúdo do teste

7.3.1 Módulo Administrador

​ Figura 7.1 Módulo Administrador

7.3.2 Módulo de Gestão de Livros

​ Figura 7.2 Módulo de gerenciamento de biblioteca

Figura 7.2 Adicionar um novo livro

7.3.3 Módulo de Gerenciamento de Usuários

Figura 7.4 Módulo de gerenciamento de usuários

Figura 7.5 Adicionando novos usuários

7.3.4 Módulo de Empréstimo e Devolução de Livros

Figura 7.6 Empréstimo e Devolução de Livros

7.3.5 Módulo de gerenciamento de categorias

Figura 7.7 Módulo de gerenciamento de categoria

7.3.6 Módulo de consulta

Figura 7.8 Registros de Empréstimo e Devolução de Livros

​ Consulta da Figura 7.9

8. Apêndice

8.1 Parte do código-fonte

8.1.1 Empréstimo e Devolução de Livros

//查询BorrowReturn表信息
        public DataSet selectHostory(BorrowReturn b, string radioName, String cboBorrowTimeType, Boolean checkTime)
        {
            string sql = string.Format(@"select BookInfo.BookId as 'BookId',Reader.UserId as 'UserId',BookName,UserName,BookTypeName,UserTypeName,Gender,IdentityCard,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount from BorrowReturn
                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
                            inner join Reader on Reader.UserId=BorrowReturn.UserId
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                            inner join ReaderType on ReaderType.UserTypeId=Reader.UserTypeId
                            where BookInfo.BookId like '%{0}%' and 
                            Reader.UserId like '%{1}%' ", b.BookId, b.UserId);
            if (radioName == "全部")
            {

            }
            else if (radioName == "已借")
            {
                sql += " and FactReturnTime	is  null ";
            }
            else if (radioName == "已还")
            {
                sql += " and FactReturnTime	is not null ";
            }

            return DBhelp.Create().ExecuteAdater(sql);
        }

        //查询BorrowReturn表全部信息
        public DataSet AllBorrowReturn()
        {
            string sql = @"select BookInfo.BookId as 'BookId',Reader.UserId as 'UserId',BookName,UserName,BookTypeName,UserTypeName,Gender,IdentityCard,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount from BorrowReturn
                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
                            inner join Reader on Reader.UserId=BorrowReturn.UserId
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                            inner join ReaderType on ReaderType.UserTypeId=Reader.UserTypeId";
            return DBhelp.Create().ExecuteAdater(sql);
        }

        //查询图书BorrowReturn表(表连接)
        public DataSet selectBorrowReturn(string BookId)
        {
            string sql = @"select BookInfo.BookId,BookName,Reader.UserId,UserName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark from BookInfo
                    inner join BorrowReturn on BorrowReturn.BookId=BookInfo.BookId
                    inner join Reader on Reader.UserId=BorrowReturn.UserId 
                    where BookInfo.BookId=@BookId ";
            SqlParameter[] sp ={
                                   new SqlParameter("@BookId",BookId)
                               };

            return DBhelp.Create().ExecuteAdater(sql, sp);
        }


        //用户借阅记录
        public DataSet ReaderBorrowReturn(string UserId)
        {
            string sql = @"select BorrowId,Reader.UserId as 'UserId',UserName,BookInfo.BookId as 'BookId',BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark from Reader
                            inner join BorrowReturn on BorrowReturn.UserId=Reader.UserId
                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
                            where Reader.UserId=@UserId and FactReturnTime is null ";
            SqlParameter[] sp ={
                                   new SqlParameter("@UserId",UserId)
                               };
            return DBhelp.Create().ExecuteAdater(sql, sp);
        }

        //用户历史借阅记录
        public DataSet ReaderBorrowReturn1(string UserId)
        {
            string sql = @"select BorrowId,Reader.UserId as 'UserId',UserName,BookInfo.BookId as 'BookId',BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark from Reader
                            inner join BorrowReturn on BorrowReturn.UserId=Reader.UserId
                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
                            where Reader.UserId=@UserId and FactReturnTime is not null ";
            SqlParameter[] sp ={
                                   new SqlParameter("@UserId",UserId)
                               };
            return DBhelp.Create().ExecuteAdater(sql, sp);
        }

        //还书
        public int ReturnBook(int BorrowReturnId)
        {
            string sql = @"update BorrowReturn set FactReturnTime=@FactReturnTime,RenewCount=0 where BorrowId=@BorrowId";
            SqlParameter[] sp ={
                                   new SqlParameter("@FactReturnTime",DateTime.Now),
                                   new SqlParameter("@BorrowId",BorrowReturnId)
                               };
            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
        }

        //借书
        public int BorrowBook(BorrowReturn b)
        {
            string sql = "proc_BorrowBook";
            Console.WriteLine(b.BookId);
            SqlParameter[] sp ={
                                   new SqlParameter("@BorrowId",DbType.Int32),
                                   new SqlParameter("@BookId",b.BookId),
                                   new SqlParameter("@UserId",b.UserId),
                                   new SqlParameter("@BorrowTime",b.BorrowTime),
                                   new SqlParameter("@ReturnTime",b.ReturnTime),
                                   new SqlParameter("@Fine",b.Fine),
                                   new SqlParameter("@RenewCount",b.RenewCount),
                                   new SqlParameter("@BorrowRemark",b.BorrowRemark),
                                   new SqlParameter("@ReturnValue",DbType.Int32)
                              };
            sp[0].Direction = ParameterDirection.Output;
            sp[sp.Length - 1].Direction = ParameterDirection.ReturnValue;
            DBhelp.Create().ExecuteNonQuery(sql, CommandType.StoredProcedure, sp);
            b.BorrowId = (int)sp[0].Value;
            return (int)sp[sp.Length - 1].Value;
        }

        //续借
        public int RenewBook(BorrowReturn b)
        {
            string sql = @"update BorrowReturn set ReturnTime=dateadd(month,3,ReturnTime),RenewCount=RenewCount+1 where BorrowId=@BorrowId";
            SqlParameter[] sp ={
                                   new SqlParameter("@BorrowId",b.BorrowId)
                               };
            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
        }

8.1.2 Gestão e consulta de bibliotecas

//查询BookInfo表
        public List<BookInfo> selectBookInfo()
        {
            string sql = @"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId";
            List<BookInfo> list = new List<BookInfo>();
            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql);
            while (reader.Read())
            {
                BookInfo b = new BookInfo();
                b.BookId = reader.GetString(0);
                b.BookName = reader.GetString(1);
                b.TimeIn = reader.GetDateTime(2);
                b.BookType = new BookType();
                b.BookType.BookTypeName = reader.GetString(3);
                b.Author = reader.GetString(4);
                b.PinYinCode = reader.GetString(5);
                b.Translator = reader.GetString(6);
                b.Language = reader.GetString(7);
                b.BookNumber = reader.GetString(8);
                b.Price = reader.GetString(9);
                b.Layout = reader.GetString(10);
                b.Address = reader.GetString(11);
                b.ISBN = reader.GetString(12);
                b.Versions = reader.GetString(13);
                b.BookRemark = reader.GetString(14);
                list.Add(b);
            }
            reader.Close();
            return list;
        }

        //根据ID查询bookinfo表
        public List<BookInfo> selectBookInfo(string BookId)
        {
            string sql = @"select BookId,BookName,TimeIn,BookTypeId,Author,PinYinCode,Translator,Language,BookNumber, Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo where BookId=@BookId";
            SqlParameter[] sp ={
                                new SqlParameter("@BookId",BookId)
                              };
            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql, sp);
            List<BookInfo> list = new List<BookInfo>();
            while (reader.Read())
            {
                BookInfo b = new BookInfo();
                b.BookId = reader.GetString(0);
                b.BookName = reader.GetString(1);
                b.TimeIn = reader.GetDateTime(2);
                b.BookTypeId = reader.GetInt32(3);
                b.Author = reader.GetString(4);
                b.PinYinCode = reader.GetString(5);
                b.Translator = reader.GetString(6);
                b.Language = reader.GetString(7);
                b.BookNumber = reader.GetString(8);
                b.Price = reader.GetString(9);
                b.Layout = reader.GetString(10);
                b.Address = reader.GetString(11);
                b.ISBN = reader.GetString(12);
                b.Versions = reader.GetString(13);
                b.BookRemark = reader.GetString(14);
                list.Add(b);
            }
            reader.Close();
            return list;
        }

        //查询BookInfo表
        public DataSet selectBookInfo1()
        {
            string sql = @"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId";
            return DBhelp.Create().ExecuteAdater(sql);
        }
        public DataSet selectBook;

        //查询BookInfo表 目前可以借阅的图书
        public DataSet selectBookInfo2(string BookId)
        {
            string sql = @"select BookInfo.BookId as 'BookId',BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo
                    inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                    where BookInfo.BookId like '%'+@BookId+'%' and BookInfo.BookId not in(select BookId from BorrowReturn where FactReturnTime is null )";
            SqlParameter[] sp ={
                                   new SqlParameter("@BookId",BookId)
                               };
            return DBhelp.Create().ExecuteAdater(sql, sp: sp);
        }

        //根据条件查询bookinfo表
        public DataSet selectBookInfo1(int index)
        {
            string sql = @"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                            where BookType.BookTypeId=@BookTypeId";
            SqlParameter[] sp ={
                                   new SqlParameter("@BookTypeId",index)
                              };
            return DBhelp.Create().ExecuteAdater(sql, sp);
        }

        //根据条件查询bookinfo表
        public DataSet selectBookInfo1(string A, string B)
        {
            string sql = string.Format(@"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                            where {0} like '%{1}%'", A, B);
            return DBhelp.Create().ExecuteAdater(sql);
        }

        //查询BookInfo表 带全部查询(表中所有相关的字段)
        public DataSet selectBookInfo1(List<string> list, string B)
        {
            string sql = "";
            for (int i = 0; i < list.Count; i++)
            {
                if (i != list.Count - 1)
                {
                    sql += string.Format(@"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                            where {0} like '%{1}%' union  ", list[i], B);
                }
                else
                {
                    sql += string.Format(@"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBN,Versions,BookRemark from BookInfo
                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
                            where {0} like '%{1}%' ", list[i], B);
                }
            }
            return DBhelp.Create().ExecuteAdater(sql);
        }

        //添加图书信息
        public int AddBookInfo(BookInfo book)
        {
            string sql = @"insert into BookInfo select @BookId,@BookName,@TimeIn,@BookTypeId,@Author,@PinYinCode,@Translator,@Language,@BookNumber,@Price,@Layout,@Address,@ISBN,@Versions,@BookRemark";
            SqlParameter[] sp ={
                                   new SqlParameter("@BookId",book.BookId),
                                   new SqlParameter("@BookName",book.BookName),
                                   new SqlParameter("@TimeIn",book.TimeIn),
                                   new SqlParameter("@BookTypeId",book.BookTypeId),
                                   new SqlParameter("@Author",book.Author),
                                   new SqlParameter("@PinYinCode",book.PinYinCode),
                                   new SqlParameter("@Translator",book.Translator),
                                   new SqlParameter("@Language",book.Language),
                                   new SqlParameter("@BookNumber",book.BookNumber),
                                   new SqlParameter("@Price",book.Price),
                                   new SqlParameter("@Layout",book.Layout),
                                   new SqlParameter("@Address",book.Address),
                                   new SqlParameter("@ISBN",book.ISBN),
                                   new SqlParameter("@Versions",book.Versions),
                                   new SqlParameter("@BookRemark",book.BookRemark),
                              };
            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
        }

        //修改图书信息
        public int ExitBookInfo(BookInfo book)
        {
            string sql = @"update BookInfo set BookName=@BookName,TimeIn=@TimeIn,BookTypeId=@BookTypeId, Author=@Author,PinYinCode=@PinYinCode,Translator=@Translator,Language=@Language,BookNumber=@BookNumber,Price=@Price,Layout=@Layout,Address=@Address,ISBN=@ISBN,Versions=@Versions,BookRemark=@BookRemark
            where BookId=@BookId";
            SqlParameter[] sp ={
                                    new SqlParameter("@BookName",book.BookName),
                                    new SqlParameter("@TimeIn",book.TimeIn),
                                    new SqlParameter("@BookTypeId",book.BookTypeId),
                                    new SqlParameter("@Author",book.Author),
                                    new SqlParameter("@PinYinCode",book.PinYinCode),
                                    new SqlParameter("@Translator",book.Translator),
                                    new SqlParameter("@Language",book.Language),
                                    new SqlParameter("@BookNumber",book.BookNumber),
                                    new SqlParameter("@Price",book.Price),
                                    new SqlParameter("@Layout",book.Layout),
                                    new SqlParameter("@Address",book.Address),
                                    new SqlParameter("@ISBN",book.ISBN),
                                    new SqlParameter("@Versions",book.Versions),
                                    new SqlParameter("@BookRemark",book.BookRemark),
                                    new SqlParameter("@BookId",book.BookId)
                              };

            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
        }

        //根据Id删除
        public int DeleteBookInfo(string BookId)
        {
            string sql = @"delete from BorrowReturn where BookId=@BookId
                           delete from BookInfo where BookId=@BookId";
            SqlParameter[] sp ={
                                   new SqlParameter("@BookId",BookId)
                              };
            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
        }

♻️ Recursos

insira a descrição da imagem aqui

Tamanho: 2,4 MB
➡️ Download do recurso: https://download.csdn.net/download/s1t16/87247973

Acho que você gosta

Origin blog.csdn.net/s1t16/article/details/128270144
Recomendado
Clasificación