用.net写一个图书管理系统
时间: 2023-10-03 19:09:18 浏览: 35
以下是一个使用.NET框架编写的简单图书管理系统的代码。该系统包括添加图书、删除图书、查找图书和显示所有图书等功能。本示例使用C#语言编写,使用SQL Server数据库来存储图书信息。
首先,需要创建一个名为Book的类,用来存储图书信息:
```csharp
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
public string Publisher { get; set; }
public int PublishYear { get; set; }
public int Price { get; set; }
}
```
接下来,需要创建一个名为BookManager的类,用来实现图书管理系统的各种功能:
```csharp
public class BookManager
{
private const string ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=BookDB;Integrated Security=True;";
public void AddBook(Book book)
{
using (var connection = new SqlConnection(ConnectionString))
{
var command = new SqlCommand("INSERT INTO Books (Name, Author, Publisher, PublishYear, Price) VALUES (@Name, @Author, @Publisher, @PublishYear, @Price)", connection);
command.Parameters.AddWithValue("@Name", book.Name);
command.Parameters.AddWithValue("@Author", book.Author);
command.Parameters.AddWithValue("@Publisher", book.Publisher);
command.Parameters.AddWithValue("@PublishYear", book.PublishYear);
command.Parameters.AddWithValue("@Price", book.Price);
connection.Open();
command.ExecuteNonQuery();
}
}
public void DeleteBook(int id)
{
using (var connection = new SqlConnection(ConnectionString))
{
var command = new SqlCommand("DELETE FROM Books WHERE Id = @Id", connection);
command.Parameters.AddWithValue("@Id", id);
connection.Open();
command.ExecuteNonQuery();
}
}
public List<Book> SearchBooks(string keyword)
{
var books = new List<Book>();
using (var connection = new SqlConnection(ConnectionString))
{
var command = new SqlCommand("SELECT * FROM Books WHERE Name LIKE @Keyword OR Author LIKE @Keyword", connection);
command.Parameters.AddWithValue("@Keyword", "%" + keyword + "%");
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
var book = new Book
{
Id = (int)reader["Id"],
Name = (string)reader["Name"],
Author = (string)reader["Author"],
Publisher = (string)reader["Publisher"],
PublishYear = (int)reader["PublishYear"],
Price = (int)reader["Price"]
};
books.Add(book);
}
}
return books;
}
public List<Book> GetAllBooks()
{
var books = new List<Book>();
using (var connection = new SqlConnection(ConnectionString))
{
var command = new SqlCommand("SELECT * FROM Books", connection);
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
var book = new Book
{
Id = (int)reader["Id"],
Name = (string)reader["Name"],
Author = (string)reader["Author"],
Publisher = (string)reader["Publisher"],
PublishYear = (int)reader["PublishYear"],
Price = (int)reader["Price"]
};
books.Add(book);
}
}
return books;
}
}
```
在上面的代码中,我们首先定义了一个连接字符串ConnectionString,该字符串指定了连接到SQL Server数据库的相关信息。然后,我们实现了四个方法,分别用来添加图书、删除图书、查找图书和显示所有图书。其中,添加图书方法使用INSERT语句向数据库中插入一条新的记录;删除图书方法使用DELETE语句从数据库中删除指定ID的记录;查找图书方法使用SELECT语句从数据库中查询包含指定关键字的记录;显示所有图书方法使用SELECT语句查询所有记录。在每个方法中,我们使用using语句来创建SqlConnection和SqlCommand对象,并使用参数化查询来避免SQL注入攻击。
最后,我们可以在程序的Main方法中使用BookManager来测试图书管理系统的各种功能:
```csharp
static void Main(string[] args)
{
var bookManager = new BookManager();
// 添加一本新书
var book = new Book
{
Name = "C# Programming",
Author = "John Smith",
Publisher = "O'Reilly Media",
PublishYear = 2020,
Price = 50
};
bookManager.AddBook(book);
// 显示所有图书
var allBooks = bookManager.GetAllBooks();
Console.WriteLine("所有图书:");
foreach (var b in allBooks)
{
Console.WriteLine($"{b.Id} {b.Name} {b.Author} {b.Publisher} {b.PublishYear} {b.Price}");
}
// 查找包含关键字的图书
var keyword = "Programming";
var searchResult = bookManager.SearchBooks(keyword);
Console.WriteLine($"查找包含关键字'{keyword}'的图书:");
foreach (var b in searchResult)
{
Console.WriteLine($"{b.Id} {b.Name} {b.Author} {b.Publisher} {b.PublishYear} {b.Price}");
}
// 删除一本图书
var bookIdToDelete = 1;
bookManager.DeleteBook(bookIdToDelete);
Console.WriteLine($"删除ID为{bookIdToDelete}的图书");
// 再次显示所有图书
allBooks = bookManager.GetAllBooks();
Console.WriteLine("所有图书:");
foreach (var b in allBooks)
{
Console.WriteLine($"{b.Id} {b.Name} {b.Author} {b.Publisher} {b.PublishYear} {b.Price}");
}
Console.ReadKey();
}
```
在上面的代码中,我们首先创建了一个BookManager对象,然后通过AddBook方法添加了一本新书。接着使用GetAllBooks方法显示所有图书,使用SearchBooks方法查找包含关键字的图书,使用DeleteBook方法删除一本图书,最后再次使用GetAllBooks方法显示所有图书。运行程序后,您将看到以下输出结果:
```
所有图书:
1 C# Programming John Smith O'Reilly Media 2020 50
查找包含关键字'Programming'的图书:
1 C# Programming John Smith O'Reilly Media 2020 50
删除ID为1的图书
所有图书:
```
以上就是一个简单的使用.NET框架和SQL Server数据库实现的图书管理系统的示例。