Desarrollar un sistema de gestión de bibliotecas de arquitectura de tres niveles (WinForm) basado en C#+SQL Server2008【100010014】

sistema de gestión de bibliotecas

1. Antecedentes e importancia del proyecto

Hoy en día, debido al rápido desarrollo de la tecnología de la información, la función de las bibliotecas como medios de información de conocimiento social se está volviendo cada vez más importante.El diseño del almacén de conocimiento para la construcción de recursos de información en el entorno de red, el modo de intercambio académico de acceso abierto, el sistema de gestión del conocimiento. , recuperación inteligente, consulta de referencia digital, El campo de la biblioteca digital se ha convertido en la dirección de investigación del sistema bibliotecario.

Desde el desarrollo de la gestión, la tendencia general del desarrollo integral se ha vuelto cada vez más evidente. Introducir nuevos métodos y absorber nuevas ideas es una condición necesaria para promover el desarrollo del sistema bibliotecario. Por lo tanto, el estudio del sistema bibliotecario debe apegarse a la integración de la teoría y la tecnología, y realizar investigaciones interdisciplinarias; debe apegarse a la combinación de teoría y práctica, y responder a las preguntas más urgentes que plantea la realidad; debe apegarse a principios básicos investigación y aplicación La investigación, la primera juega un papel rector en la segunda, y la segunda a su vez enriquece y desarrolla a la primera; manejar correctamente la relación entre realidad, historia y teoría es un método importante para promover el estudio de los sistemas de gestión.

2. Análisis de la demanda

2.1 Análisis de estado

En el pasado, la gente usaba el método manual tradicional para administrar el trabajo diario de la biblioteca y el proceso de operación era engorroso. Al tomar prestado un libro, el lector primero entrega el libro a prestar y la tarjeta de la biblioteca al personal, luego el personal coloca la tarjeta de información de cada libro y la tarjeta de la biblioteca del lector en una pequeña columna, y finalmente la tarjeta de la biblioteca y cada libro Complete la información de préstamo en el comprobante de préstamo publicado. Al devolver libros, los lectores primero entregan los libros que desean devolver al personal, y luego el personal encuentra las tarjetas de libros correspondientes y las tarjetas de préstamo de acuerdo con la información del libro, y completa la información de devolución del libro correspondiente.

Hay muchos libros en la biblioteca escolar, si se manejan manualmente, la carga de trabajo será muy pesada. Las estadísticas y la gestión de libros se convertirán en un quebradero de cabeza, y será muy incómodo para los lectores tomar prestados libros para registrarse. En este momento, el uso de computadoras para realizar estas tareas de gestión estadística puede brindarnos una gran comodidad a nuestras vidas y mejorar la eficiencia del trabajo. Debido a condiciones limitadas, solo se puede usar el teclado para ingresar la información del libro, por lo que es un poco complicado ingresar el número ISBN del libro. Por lo tanto, en el diseño del curso se utiliza el número de libro. En la vida real, será más preciso y eficiente ingresar el número ISBN escaneando.

2.2 Requisitos funcionales del sistema

El sistema de gestión de bibliotecas es un software de gestión desarrollado para que el personal de la biblioteca realice la función de gestión de la información del libro y la información del usuario.

Este sistema puede realizar principalmente las siguientes funciones:

  • Gestión de información de libros (consultar, modificar, añadir, eliminar)

  • Gestión de la información de los usuarios (consultar, modificar, añadir, eliminar)

  • Operación de préstamo, operación de devolución, operación de renovación, vista de registro de préstamo

  • Gestión de clasificación de libros y usuarios (consultar, modificar, añadir, eliminar)

2.3 Objetivos del diseño del sistema

  • Las tablas de datos en el sistema están razonablemente diseñadas, son eficientes y tienen menos redundancia de datos.

  • Interfaz de software amigable y alta seguridad

  • Fácil de mantener y conveniente para actualizar

3. Análisis de Viabilidad del Sistema

3.1 Viabilidad técnica

El entorno de desarrollo del sistema de gestión de bibliotecas es Visual Studio 2010, Microsoft SQL Server 2008R2 SP3. El sistema se realiza utilizando el modo interactivo C / S. El sistema tiene estabilidad, seguridad, estética y avance. En el proceso de desarrollo del sistema en esta etapa, es totalmente capaz de utilizar los recursos humanos y materiales existentes para desarrollarlo.Como producto por etapas, hay un gran espacio para el desarrollo futuro, y el método de implementación es gradualmente simple y fácil. Por lo tanto, el sistema de gestión de bibliotecas es técnicamente factible. Con las limitaciones actuales, se pueden lograr los objetivos funcionales del sistema.

3.2 Viabilidad económica

El equipo de profesores y alumnos de la carrera de informática puede realizar el mantenimiento diario del sistema con menor carga de trabajo y menor gasto económico.

3.3 Factibilidad de Operación

Todas las interfaces tienen un estilo unificado, y los estilos de texto de página de diferentes columnas están unificados. Se destacan las características de la plataforma de gestión de libros. El sistema es amigable y fácil de operar, incluso para profesores sin conocimientos básicos de informática.

4. Tecnologías relacionadas utilizadas

4.1 C#

C# es un lenguaje de programación de alto nivel orientado a objetos lanzado por Microsoft que se ejecuta en .NET Framework. Y está programado para aparecer en el escenario del Microsoft Professional Developers Forum (PDC). C# es un lenguaje de programación orientado a objetos seguro, estable, simple y elegante derivado de C y C++. Hereda las potentes características de C y C++ mientras elimina algunas de sus características complejas (como no tener macros y no permitir la herencia múltiple). C# combina la operación visual simple de VB y la alta eficiencia operativa de C++. Con su poderosa capacidad de operación, estilo de sintaxis elegante, funciones de lenguaje innovadoras y soporte de programación orientado a componentes conveniente, se ha convertido en el lenguaje preferido para el desarrollo de .NET.

4.2 servidor SQL

SQL Server es un sistema de administración de bases de datos relacionales (DBMS) desarrollado y promovido por Microsoft. Originalmente fue desarrollado conjuntamente por Microsoft, Sybase y Ashton-Tate, y la primera versión de OS/2 se lanzó en 1988. Microsoft SQL Server se ha actualizado continuamente en los últimos años. En 1996, Microsoft lanzó SQL Server 6.5; en 1998, SQL Server 7.0 se reunió con los usuarios; Microsoft lanzó SQL Server 2000 en 2000, y la última versión se lanzó actualmente en 2017. SERVIDOR SQL 2017.

5. Diseño detallado del sistema

5.1 Diseño general

Uso de Microsoft SQL Server 2008R2 sp3 y Visual Studio 2010 como entorno de desarrollo, uso de tecnología de base de datos y tecnología de desarrollo .net, uso de arquitectura de tres niveles de C#: capa de presentación (IU (interfaz de usuario)), capa de lógica de negocios (BLL (capa de lógica de negocios) ) ), capa de acceso a datos (DAL (capa de acceso a datos)) más biblioteca de clases de entidad (Modelo), para desarrollar este sistema de gestión de libros.

5.2 Diseño de base de datos

5.2.1 Diagrama de flujo de datos

diagrama de flujo de datos

5.2.2 Diccionario de datos

tabla de administración

Tabla BookInfo

Tabla BookType

Tabla de préstamo y devolución

mesa de clase

Mesa de departamento

Mesa lectora

Tabla ReaderType

5.2.3 Estructura lógica

  • Admin (ID de administrador, Contraseña, Tipo, Comentarios)

  • Información del libro (ID del libro, título, tiempo de almacenamiento, autor, código pinyin, traductor, idioma, número de páginas, precio, diseño de impresión, lugar de almacenamiento, código ISBN, versión, comentarios)

  • Tipo de libro (ID de tipo de libro, Nombre de tipo de libro)

  • Préstamo y devolución de libros (ID de préstamo y devolución de libros, ID de libro, ID de usuario, tiempo de préstamo, tiempo de devolución de libros, tiempo real de devolución de libros, multas, tiempos de renovación, notas)

  • Clase de usuario (ID de clase, nombre de clase)

  • Universidad del usuario (ID de la universidad, nombre de la universidad)

  • Información del usuario (ID de usuario, nombre de usuario, hora de registro, período de validez, tipo de usuario, universidad, clase, número de ID, género, QQ, teléfono, correo electrónico, dirección, comentarios)

  • academia_usuario(id_tipo_usuario, nombre_tipo_usuario)

5.3 Diseño de seguridad

Hay dos tipos de administradores en el sistema: el primero son los administradores ordinarios, que tienen todos los permisos excepto la gestión de administrador; el segundo son los superadministradores, que tienen la máxima autoridad y pueden modificar a los administradores ordinarios. Esta configuración evita que los datos de la base de datos se alteren a voluntad.

Diagrama de diseño conceptual del sistema

6. Análisis del esquema

6.1 Análisis de operatividad

Todas las páginas tienen un estilo unificado, y el estilo de texto de la página es unificado.En términos de concepción, se destacan las características de la plataforma de gestión de libros para obtener una mejor eficiencia de navegación.

6.2 Análisis avanzado

Este sistema se implementa utilizando el modo interactivo C/S, utilizando la arquitectura de tres niveles de C#: capa de presentación (UI (interfaz de usuario)), capa de lógica de negocios (BLL (capa de lógica de negocios)), capa de acceso a datos (DAL (capa de acceso a datos) ) )) Junto con la biblioteca de clases de entidad (Modelo), el desarrollo de este sistema de gestión de libros ha logrado la estabilidad, seguridad, estética y avance del sistema.

6.3 Análisis de robustez

El sistema aún está en la etapa de completar las funciones más básicas, y no habrá una gran cantidad de visitas de usuarios.El servidor usa Alibaba Cloud, que tiene una buena robustez.

6.4 Análisis de escalabilidad

La página del sistema es simple y es muy conveniente agregar nuevas páginas. Las nuevas funciones no entrarán en conflicto con las funciones existentes y tiene una gran escalabilidad. Además, la base de datos del sistema se puede expandir o reducir dinámicamente a medida que cambia la escala de la escuela.

6.5 Análisis de mantenibilidad

El programa es simple, los datos de la base de datos son menos redundantes, la base de datos se puede restaurar mediante archivos de registro y la capacidad de mantenimiento es sólida.

Siete, prueba del sistema

7.1 Resumen de la prueba

Escriba casos de prueba y pruébelos, encuentre errores y corríjalos.

7.2 Recursos y entorno de prueba

7.2.1 Configuración de hardware

Modelo de computadora: Ares Z6S1

Procesador: CPU Intel(R) Core™ i7-4720HQ a 2,60 GHz 2,60 GHz

7.2.2 Configuración del software

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

Software utilizado: Microsoft Visual Studio 2010

Servidor SQL 2008R2 SP3

7.3 Contenido de la prueba

7.3.1 Módulo de administrador

​ Figura 7.1 Módulo de administrador

7.3.2 Módulo de Gestión de Libros

​ Figura 7.2 Módulo de gestión de bibliotecas

​ Figura 7.2 Agregar un nuevo libro

7.3.3 Módulo de Gestión de Usuarios

Figura 7.4 Módulo de gestión de usuarios

​ Figura 7.5 Adición de nuevos usuarios

7.3.4 Módulo de Préstamo y Devolución de Libros

Figura 7.6 Préstamo y devolución de libros

7.3.5 Módulo de gestión de categorías

​ Figura 7.7 Módulo de gestión de categorías

7.3.6 Módulo de consulta

Figura 7.8 Registros de préstamo y devolución de libros

Figura 7.9 consulta

8. Apéndice

8.1 Parte del código fuente

8.1.1 Préstamo y devolución de libros

//查询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 Consulta y gestión de la biblioteca

//查询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

inserte la descripción de la imagen aquí

Tamaño: 2,4 MB
➡️ Descarga de recursos: https://download.csdn.net/download/s1t16/87247973

Supongo que te gusta

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