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
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
Tamanho: 2,4 MB
➡️ Download do recurso: https://download.csdn.net/download/s1t16/87247973