关于数据库
本次实验要求熟悉并掌握嵌入式 SQL 编程以及使用数据库访问接口技术实现对数据库的访问。具体来说,需要创建 students 数据库并在其中创建三张表:Student、Course 和 SC。随后,需要设计一个小型的数据库应用程序,实现数据的增加、删除、修改和查询功能。
实验步骤如下:
创建数据库和表
首先需要在 MySQL 中创建 students 数据库,并在其中创建三张表:Student、Course 和 SC,具体创建语句如下:
CREATE DATABASE students; -- 创建数据库 USE students; -- 使用数据库 CREATE TABLE Student ( Sno char ( 7 ) PRIMARY KEY, Sname char ( 10 ) NOT NULL, Ssex char (2), Sage tinyint , Sdept char (20) ); -- 创建 Student 表 CREATE TABLE Course ( Cno char(10) NOT NULL, Cname char(20) NOT NULL, Ccredit tinyint , Semester tinyint, PRIMARY KEY(Cno) ); -- 创建 Course 表 CREATE TABLE SC ( Sno char(7) NOT NULL, Cno char(10) NOT NULL, Grade tinyint, XKLB char(4), PRIMARY KEY ( Sno, Cno ) , FOREIGN KEY (Sno) REFERENCES Student (Sno), FOREIGN KEY (Cno) REFERENCES Course (Cno) ); -- 创建 SC 表
设计应用程序
本次实验要求设计一个小型的数据库应用程序,实现数据的增加、删除、修改和查询功能。为了方便实现,我使用了 VB.NET 编写应用程序,并使用了 MySQL 数据库的 .NET 连接器 MySqlConnection。
具体来说,我的应用程序包括了以下几个部分:
2.1 连接数据库
首先需要连接数据库,代码如下:
Dim connString As String = "Server=localhost;Database=students;Uid=root;Pwd=123456;" Dim conn As MySqlConnection = New MySqlConnection(connString) Try conn.Open() MsgBox("连接成功!") Catch ex As MySqlException MsgBox(ex.Message) End Try
需要注意的是,在代码中需要将 connString 字符串中的用户名和密码修改为自己的 MySQL 用户名和密码。
2.2 添加数据
Dim connString As String = "Server=localhost;Database=students;Uid=root;Pwd=123456;" Dim conn As MySqlConnection = New MySqlConnection(connString) Try conn.Open() MsgBox("连接成功!") Catch ex As MySqlException MsgBox(ex.Message) End Try
需要注意的是,在代码中需要将 connString 字符串中的用户名和密码修改为自己的 MySQL 用户名和密码。
2.2 添加数据
接下来需要实现添加数据的功能。具体来说,我添加了三个文本框和一个按钮,分别用于输入学生学号、姓名和性别信息,点击按钮时将该信息添加到 Student 表中。代码如下:
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click Dim sno As String = txtStudentNo.Text Dim sname As String = txtStudentName.Text Dim ssex As String = txtStudentSex.Text Dim cmd As MySqlCommand = New MySqlCommand cmd.Connection = conn cmd.CommandText = "INSERT INTO Student(Sno, Sname, Ssex) VALUES(@sno, @sname, @ssex)" cmd.Parameters.AddWithValue("@sno", sno) cmd.Parameters.AddWithValue("@sname", sname) cmd.Parameters.AddWithValue("@ssex", ssex) Try cmd.ExecuteNonQuery() MsgBox("添加成功!") Catch ex As Exception MsgBox(ex.Message) End Try End Sub
在代码中,首先获取文本框中的学生学号、姓名和性别信息。然后使用 MySqlCommand 对象创建 SQL 查询语句,并将参数添加到查询语句中。最后通过 cmd.ExecuteNonQuery() 执行查询语句并添加数据。
2.3 删除数据
接下来需要实现删除数据的功能。具体来说,我添加了一个文本框和一个按钮,用于输入学生学号,点击按钮时将该学生从 Student 表中删除。代码如下:
Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click Dim sno As String = txtStudentNo_Delete.Text Dim cmd As MySqlCommand = New MySqlCommand cmd.Connection = conn cmd.CommandText = "DELETE FROM Student WHERE Sno=@sno" cmd.Parameters.AddWithValue("@sno", sno) Try cmd.ExecuteNonQuery() MsgBox("删除成功!") Catch ex As Exception MsgBox(ex.Message) End Try End Sub
在代码中,首先获取文本框中的学生学号信息。然后使用 MySqlCommand 对象创建 SQL 查询语句,并将参数添加到查询语句中。最后通过 cmd.ExecuteNonQuery() 执行查询语句并删除数据。
2.4 更新数据
接下来需要实现更新数据的功能。具体来说,我添加了三个文本框和一个按钮,分别用于输入学生学号、姓名和年龄信息,点击按钮时根据学生学号更新该学生在 Student 表中的信息。代码如下:
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click Dim sno As String = txtStudentNo_Update.Text Dim sname As String = txtStudentName_Update.Text Dim sage As Integer = Integer.Parse(txtStudentAge.Text) Dim cmd As MySqlCommand = New MySqlCommand cmd.Connection = conn cmd.CommandText = "UPDATE Student SET Sname=@sname, Sage=@sage WHERE Sno=@sno" cmd.Parameters.AddWithValue("@sno", sno) cmd.Parameters.AddWithValue("@sname", sname) cmd.Parameters.AddWithValue("@sage", sage) Try cmd.ExecuteNonQuery() MsgBox("更新成功!") Catch ex As Exception MsgBox(ex.Message) End Try End Sub
2.5 查询数据
最后需要实现查询数据的功能。具体来说,我添加了两个文本框和一个按钮,分别用于输入学生学号和查询结果的输出,点击按钮时根据学生学号从 Student 表中查询该学生的信息,并将查询结果输出到文本框中。代码如下:
Private Sub btnQuery_Click(sender As Object, e As EventArgs) Handles btnQuery.Click Dim sno As String = txtStudentNo_Query.Text Dim cmd As MySqlCommand = New MySqlCommand cmd.Connection = conn cmd.CommandText = "SELECT * FROM Student WHERE Sno=@sno" cmd.Parameters.AddWithValue("@sno", sno) Try Dim reader As MySqlDataReader = cmd.ExecuteReader() If reader.Read() Then Dim sname As String = reader.GetString("Sname") Dim ssex As String = reader.GetString("Ssex") Dim sage As Integer = reader.GetInt32("Sage") txtQueryResult.Text = "姓名:" & sname & vbCrLf & "性别:" & ssex & vbCrLf & "年龄:" & sage Else txtQueryResult.Text = "未找到该学生!" End If reader.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Sub
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南