SQL Server实验六:构建数据库应用程序

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数据库,并对其进行操作。

数据库标签