数据库(vb.net+OleDB+Access)简易学生信息管理系统
在我们日常生活当中,数据库一词往往离不开我们的编程界,在学校、仓库等方面起着存储数据及数据关系作用的文件。相较于Excel,Access可以存储无限多的记录,内容也十分丰富,例如文本、数字、日期、T&F等。而且不需要额外的转换数据即可被.net读取使用(难道不是已经封装好了吗doge),好了开始我们今天的教学。
如题,我们需要完成几项工作
一、安装Office2016,也可以单独安装Access2016,新建数据库


二、如果安装顺利那么就不需要安装“引擎”,因为本人安装完之后VS闪退后来卸载,然后重装Office解决。主要是在这一步栽的人比较多,不懂的可以评论或私信解决哦
三、打开VS,新建项目,设计窗体
1、学生表

我们做数据库开发会使用到DataGridView控件,用来显示查询结果和预览。
2、课程表
3、父窗体MDI容器
四、开始编写代码
1、主窗体:(窗口管理器)
![]()
Public Class 窗口管理器Private Sub 学生表ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 学生表ToolStripMenuItem.Click学生表.MdiParent = Me学生表.Show()End SubPrivate Sub 课程表ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 课程表ToolStripMenuItem.Click课程表.MdiParent = Me课程表.Show()End Sub
End Class
尽量使用英文做变量名,此处为了直观。
2、学生表
全局变量声明
Dim objDa As New OleDb.OleDbDataAdapter
Dim objDs As New DataSet
Dim objXSTable As DataTable
全局过程声明:
Sub Reload()objDa.Update(objDs, "xsb1")objXSTable.Clear()Bind()End SubSub Bind()Dim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"objComm.CommandText = "SELECT * from 学生表 "objComm.Connection = objConnobjDa.SelectCommand = objCommDim builder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(objDa)objConn.Open()objDa.Fill(objDs, "xsb1")objXSTable = objDs.Tables("xsb1")objConn.Close()DataGridView1.DataSource = objDs.Tables("xsb1")End Sub
窗体加载时,我们要先填充表格(初始化)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"objComm.CommandText = "SELECT * from 学生表"objComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "xsb")objConn.Close()DataGridView1.DataSource = objDs.Tables("xsb")Bind()End Sub
录入一条记录:(注意,不管时录入还是修改,主键的内容都不可以为空!)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click' Dim objConn As New OleDb.OleDbConnection' Dim objComm As New OleDb.OleDbCommand' objConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;'Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"Dim myRow As DataRow = objXSTable.NewRow()myRow("学号") = TextID.TextmyRow("姓名") = TextName.TextmyRow("性别") = Combo1.SelectedItemmyRow("出生日期") = DatePicker.ValuemyRow("选课(专业)") = TextOptionClass.TextmyRow("是否为艺考生") = CheckBox1.CheckedmyRow("学分") = TextScore.TextmyRow("备注") = TextTip.TextobjXSTable.Rows.Add(myRow)Reload()End Sub
修改
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Item(0) = TextID.TextobjXSTable.Rows.Item(index).Item(1) = TextName.TextobjXSTable.Rows.Item(index).Item(2) = Combo1.SelectedItemobjXSTable.Rows.Item(index).Item(3) = DatePicker.ValueobjXSTable.Rows.Item(index).Item(4) = TextOptionClass.TextobjXSTable.Rows.Item(index).Item(5) = CheckBox1.CheckedobjXSTable.Rows.Item(index).Item(6) = TextScore.TextobjXSTable.Rows.Item(index).Item(7) = TextTip.TextReload()
End Sub
删除一条记录
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Delete()Reload()End Sub
清理文本框内的数据(不影响数据库)
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickTextID.Text = ""TextName.Text = ""Combo1.SelectedIndex = -1DatePicker.Value = #2000/01/01#TextOptionClass.Text = ""CheckBox1.Checked = FalseTextScore.Text = ""TextTip.Text = ""
End Sub
查询(模糊查询,简单的SQL语句)
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"If FRid.Checked = True ThenobjComm.CommandText = "SELECT * from 学生表 where 学号 like '%" & FTid.Text & "%'"ElseIf FRName.Checked = True ThenobjComm.CommandText = "SELECT * from 学生表 where 姓名 like '%" & FTName.Text & "%'"End IfobjComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "xsb")objConn.Close()DataGridView1.DataSource = objDs.Tables("xsb")End Sub
点击表格任意一个单元格(立马填充到左下角的编辑区域,但注意主键不能为空,本人没有做错误处理)
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClickTextID.Text = DataGridView1.CurrentRow.Cells(0).Value.ToStringTextName.Text = DataGridView1.CurrentRow.Cells(1).Value.ToStringCombo1.SelectedItem = DataGridView1.CurrentRow.Cells(2).Value.ToStringCombo1.Text = DataGridView1.CurrentRow.Cells(2).Value.ToStringDatePicker.Value = DataGridView1.CurrentRow.Cells(3).ValueTextOptionClass.Text = DataGridView1.CurrentRow.Cells(4).Value.ToStringCheckBox1.Checked = DataGridView1.CurrentRow.Cells(5).ValueTextScore.Text = DataGridView1.CurrentRow.Cells(6).Value.ToStringTextTip.Text = DataGridView1.CurrentRow.Cells(7).Value.ToString
End Sub
3、课程表,类似于学生表。
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.ButtonPublic Class 课程表Dim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetDim objXSTable As DataTablePrivate Sub 课程表_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"objComm.CommandText = "SELECT * from 课程表"objComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "kcb")objConn.Close()DataGridView1.DataSource = objDs.Tables("kcb")Bind()End SubSub Reload()objDa.Update(objDs, "kcb1")objXSTable.Clear()Bind()End SubSub Bind()Dim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"objComm.CommandText = "SELECT * from 课程表 "objComm.Connection = objConnobjDa.SelectCommand = objCommDim builder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(objDa)objConn.Open()objDa.Fill(objDs, "kcb1")objXSTable = objDs.Tables("kcb1")objConn.Close()DataGridView1.DataSource = objDs.Tables("kcb1")End SubPrivate Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickTextID.Text = ""TextName.Text = ""End SubPrivate Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Delete()Reload()End SubPrivate Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Item(0) = TextID.TextobjXSTable.Rows.Item(index).Item(1) = TextName.TextEnd SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim myRow As DataRow = objXSTable.NewRow()myRow("课程编号") = TextID.TextmyRow("课程名称") = TextName.TextobjXSTable.Rows.Add(myRow)Reload()End SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\学生信息管理系统\学生信息.accdb'"If FRid.Checked = True ThenobjComm.CommandText = "SELECT * from 课程表 where 课程编号 like '%" & FTid.Text & "%'"ElseIf FRName.Checked = True ThenobjComm.CommandText = "SELECT * from 课程表 where 课程名称 like '%" & FTName.Text & "%'"End IfobjComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "kcb")objConn.Close()DataGridView1.DataSource = objDs.Tables("kcb")End SubPrivate Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClickTextID.Text = DataGridView1.CurrentRow.Cells(0).Value.ToStringTextName.Text = DataGridView1.CurrentRow.Cells(1).Value.ToStringEnd Sub
End Class
本系统由于是初级阶段,没有表与表之间的关系,目前属于孤立阶段,但是简单的录入、修改和查询已经可以实现。
等待下一次更新!
相关文章:
数据库(vb.net+OleDB+Access)简易学生信息管理系统
在我们日常生活当中,数据库一词往往离不开我们的编程界,在学校、仓库等方面起着存储数据及数据关系作用的文件。相较于Excel,Access可以存储无限多的记录,内容也十分丰富,例如文本、数字、日期、T&F等。而且不需要…...
Android 自定义图片进度条
用系统的Progressbar,设置图片drawable作为进度条会出现图片长度不好控制,容易被截断,或者变形的问题。而我有个需求,使用图片背景,和图片进度,而且在进度条头部有个闪光点效果。 如下图: 找了…...
对话:用言语构建深刻的思想碰撞
对话:用言语构建深刻的思想碰撞 在写书中,对话是一种有力的工具,能与读者进行有效的沟通和交流,引发深思和反思。它不仅是信息传递的方式,更是加深情感、探讨主题和吸引读者参与的桥梁。你应从读者的角度思考…...
Linux完整版命令大全(九)
4. linux压缩备份命令 ar 功能说明:建立或修改备存文件,或是从备存文件中抽取文件。语 法:ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][备存文件][成员文件]补充说明:ar可让您集合许多…...
solidworks画螺栓学习笔记
螺栓 单位mm 六边形 直径16mm 水平约束 拉伸 选择厚度6mm 拉伸切除 画相切圆 切除厚度6mm,反向切除 ,拔模角度45 螺栓 直径9mm,长度30mm 倒角 直径1mm,角度45 异形孔向导 螺纹线 偏移打勾,距离为2mm&#…...
【Spark】加大hive表在HDFS存的每个文件的大小
配置参数: spark.hadoop.hive.exec.orc.default.stripe.size78643200 spark.hadoop.orc.stripe.size78643200 spark.hadoopRDD.targetBytesInPartition78643200 spark.hadoop.hive.exec.dynamic.partition.modenonstrict spark.sql.sources.partitionOverwriteMode…...
2024 年 5 个 GO REST API 框架
什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码;这些是为移动开…...
socket地址理解
socket介绍 套接字的基本概念 1. 套接字的定义: 套接字(socket)是计算机网络中用于通信的端点,它抽象了不同主机上应用进程之间双向通信的机制。 2. 套接字的作用: 套接字连接应用进程与网络协议栈,使…...
Gopeed的高级用法
Gopeed是一个开源全平台下载器,具体简介请参考: “狗屁下载器”?Gopeed - 开源全平台下载器 (免费轻量 / 比 Aria2 好用 / 远程下载) - 异次元软件世界 (iplaysoft.com) 这里主要介绍下自己摸索出来的 Gopeed 的高级做法。 有的网站添加的…...
OpenHarmony系统使用gdb调试init
前言 OpenAtom OpenHarmony(简称“OpenHarmony”)适配新的开发板时,启动流程init大概率会出现问题,其为内核直接拉起的第一个用户态进程,问题定位手段只能依赖代码走读和增加调试打印,初始化过程中系统崩溃…...
【SpringCloud】Spring Cloud基本介绍
目录 回顾架构分类单体架构分布式架构微服务架构什么是微服务优点缺点微服务的架构特征:微服务架构面临的挑战技术挑战微服架构的设计原则微服务概念提供者(Provider)消费者(Consumer)RPC和Restful集群分布式 总结 服务拆分和远程调用服务拆分原则服务拆分示例 思考…...
全域运营是本地生活服务的新模式吗?
最近,本地生活赛道又出现了一个新的说法,即全域运营是本地生活的下半场。事实上,这一论断并非空穴来风,而是有真凭实据。 作为多家互联网大厂重点布局的业务板块,本地生活的火爆程度早已有目共睹。根据多家互联网大厂…...
机器视觉-硬件
机器视觉-硬件 镜头焦距凸透镜焦点不止一个相机镜头由多个镜片组成对焦和变焦 镜头光圈光圈的位置光圈系数F 镜头的景深景深在光路中的几何意义 远心镜头远心镜头的种类远心镜头特性应用场景 镜头的分辨率镜头反差镜头的MTF曲线镜头的靶面尺寸镜头的几何相差相机镜头接口螺纹接…...
机器学习实验 --- 逻辑回归
第1关:逻辑回归核心思想 任务描述 本关任务:根据本节课所学知识完成本关所设置的编程题 #encodingutf8 import numpy as npdef sigmoid(t):完成sigmoid函数计算:param t: 负无穷到正无穷的实数:return: 转换后的概率值:可以考虑使用np.exp()函数#*****…...
浅谈C++函数
目录 一、函数的概念二、调用函数的两个前提三、函数传参的三种形式四、函数返回类型 一、函数的概念 函数是C程序的基本模块,通常一个C程序由一个或多个函数组成。函数可以完成用户指定的任务,一般分为库函数和用户自定义的函数。函数由函数头和函数体…...
6.小程序页面布局 - 账单明细
文章目录 1. 6.小程序页面布局 - 账单明细1.1. 竞品1.2. 布局分析1.3. 布局demo1.4. 页面实现-头部1.5. 账单明细1.5.1. 账单明细-竞品分析1.5.2. 账单明细-实现1.5.2.1. 账单明细-实现-mock数据1.5.2.2. 每日收支数据的聚合整理1.5.2.3. 页面scroll-view 1.6. TODO 1. 6.小程序…...
记录ES7.X更新数据的低级错误
背景:新项目复用之前同事遗留下的方法 问题:ES跨索引更新数据错误 排查:复用同事的方法有问题,他直接使用ES别名更新数据导致,只有一个索引时无问题,当多个索引使用同一别名时会出现异常 解决࿱…...
【简单介绍下链表基础知识】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
leetcode 2915.和为目标值的最长子序列的长度
思路:01背包 这个背包问题很经典了,但是这里涉及到一个问题,就是我们转化问题的时候发现,这个背包需要正好装满才行。这里我们把长度作为价值,也就是说每一个数的价值都是1。 我们需要把dp初始化为全部为负数&#x…...
欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理和高斯消元
欧拉函数 给定 n 个正整数 ai,请你求出每个数的欧拉函数。 欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。 若在算数基本定理中,Np1a11p2a2…pmm,则:ϕ(N) Np1−1/p1p2−1/p2…pm−1/pm 输…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
