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
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
Tamaño: 2,4 MB
➡️ Descarga de recursos: https://download.csdn.net/download/s1t16/87247973