1. 数据库设计
在构建数据库应用程序之前,首先需要进行数据库设计。数据库设计是一项非常重要的工作,良好的数据库设计有助于提高数据的管理和维护效率,为后续开发工作奠定了良好的基础。
数据库设计包括以下几个方面:
1.1. 数据库需求分析
数据库设计的第一步是通过需求分析明确用户的需求,并确定应用程序需要支持的业务功能。在本次实验中,我们需要设计一个简单的图书管理系统,它需要支持以下功能:
管理员登录
添加图书信息
修改图书信息
删除图书信息
查询图书信息
1.2. 概念设计
在数据库需求分析的基础上,我们需要进行概念设计,即根据业务需求,抽象出实体、属性、关系等概念。在本次实验中,我们需要设计的实体包括“管理员”和“图书”两个部分:
管理员:ID、用户名、密码
图书:ID、书名、作者、出版社、出版日期、价格、库存
1.3. 逻辑设计
在概念设计的基础上,我们需要进行逻辑设计,即确定数据之间的关系、约束条件等。在本次实验中,我们需要考虑以下几个方面:
管理员与图书之间的关系:一个管理员可以管理多个图书,一个图书只能被一个管理员管理。
图书信息的约束条件:价格不能为负数,库存不能为负数。
1.4. 物理设计
在逻辑设计的基础上,我们需要进行物理设计,即将逻辑设计转化为数据库模式、表结构等具体实现方式。在本次实验中,我们需要设计两张表:
CREATE TABLE [dbo].[admin]
(
[ID] INT PRIMARY KEY IDENTITY(1, 1),
[username] VARCHAR(50) NOT NULL,
[password] VARCHAR(50) NOT NULL
)
CREATE TABLE [dbo].[book]
(
[ID] INT PRIMARY KEY IDENTITY(1, 1),
[bookname] VARCHAR(50) NOT NULL,
[author] VARCHAR(50) NOT NULL,
[publisher] VARCHAR(50) NOT NULL,
[publishdate] DATE NOT NULL,
[price] FLOAT NOT NULL DEFAULT 0 CHECK (price >= 0),
[stock] INT NOT NULL DEFAULT 0 CHECK (stock >= 0),
[adminID] INT NOT NULL FOREIGN KEY REFERENCES admin(ID)
)
2. 数据库应用程序开发
数据库应用程序开发是指将数据库设计所得的模式、表结构等具体实现方式应用到实际代码中,从而实现对数据库的操作。在本次实验中,我们使用C#语言开发一个简单的图书管理系统。
2.1. 数据库连接
在C#中,我们可以使用SqlConnection类来与SQL Server数据库建立连接,并使用SqlCommand类来执行SQL语句。以下代码演示了如何建立与数据库的连接:
string connStr = "Data Source=(local);Initial Catalog=bookdb;Integrated Security=True";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
2.2. 添加图书信息
以下代码演示了如何向数据库添加一本新书:
string sql = "INSERT INTO book(bookname, author, publisher, publishdate, price, stock, adminID) VALUES(@bookname, @author,
@publisher, @publishdate, @price, @stock, @adminID)";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@bookname", "C#程序设计");
cmd.Parameters.AddWithValue("@author", "张三");
cmd.Parameters.AddWithValue("@publisher", "机械工业出版社");
cmd.Parameters.AddWithValue("@publishdate", new DateTime(2020, 1, 1));
cmd.Parameters.AddWithValue("@price", 58.0);
cmd.Parameters.AddWithValue("@stock", 10);
cmd.Parameters.AddWithValue("@adminID", 1);
int n = cmd.ExecuteNonQuery();
if (n > 0)
{
Console.WriteLine("添加成功!");
}
else
{
Console.WriteLine("添加失败!");
}
2.3. 修改图书信息
以下代码演示了如何修改一本书的价格:
string sql = "UPDATE book SET price = @price WHERE ID = @bookID";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@price", 65.0);
cmd.Parameters.AddWithValue("@bookID", 1);
int n = cmd.ExecuteNonQuery();
if (n > 0)
{
Console.WriteLine("修改成功!");
}
else
{
Console.WriteLine("修改失败!");
}
2.4. 删除图书信息
以下代码演示了如何删除一本书:
string sql = "DELETE FROM book WHERE ID = @bookID";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@bookID", 1);
int n = cmd.ExecuteNonQuery();
if (n > 0)
{
Console.WriteLine("删除成功!");
}
else
{
Console.WriteLine("删除失败!");
}
2.5. 查询图书信息
以下代码演示了如何查询书名为“C#程序设计”的所有图书:
string sql = "SELECT * FROM book WHERE bookname = @bookname";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@bookname", "C#程序设计");
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("书名:{0},作者:{1},价格:{2},库存:{3}", reader["bookname"], reader["author"], reader["price"], reader["stock"]);
}
reader.Close();
3. 总结
本次实验中,我们通过对数据库需求分析、概念设计、逻辑设计以及物理设计的详细探讨,为后续开发工作奠定了良好的基础。在数据库应用程序开发方面,我们使用C#语言开发了一个简单的图书管理系统,通过对数据库的操作实现了管理员登录、添加图书信息、修改图书信息、删除图书信息以及查询图书信息等业务功能,在实践中掌握了如何使用ADO.NET从C#应用程序连接SQL Server数据库,并对其进行操作。