关于数据库

 本次实验要求熟悉并掌握嵌入式 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
复制代码

 

posted @   周+⑦  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示