编写一个简版的数据库维护框架05-Demo01(基础数据录入)

本文创建了一个MySQL数据库示例,包括class和ethnic表,用于基础数据录入。在VisualStudio中构建了一个基础输入表单,用于班级数据录入,实现了界面初始化和数据保存功能。通过修改连接字符串可测试数据录入的正确性。此外,文章鼓励读者按照相同方法处理更复杂的表格,如students表。
摘要由CSDN通过智能技术生成

本文将写一个demo,验证一下这个简单框架的工作情况。

一、数据库准备

数据库采用 mysql

实体关系图

在这里插入图片描述

采用下面的脚本建立这个简单数据库

CREATE DATABASE `MARASUN_SQL_LAB` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

CREATE TABLE `class` (
  `pk` int NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `number` tinyint DEFAULT NULL,
  `address` varchar(64) DEFAULT NULL,
  `last_modi_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `last_modi_by` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `backup` char(1) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'N',
  `remark` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `ethnic` (
  `pk` int NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `abrev` varchar(1) DEFAULT NULL,
  `population` int unsigned DEFAULT NULL,
  `location` varchar(45) DEFAULT NULL,
  `introduction` varchar(45) DEFAULT NULL,
  `festival` varchar(45) DEFAULT NULL,
  `last_modi_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `last_modi_by` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `backup` char(1) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'N',
  `remark` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`pk`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='民族';


CREATE TABLE `ethnic` (
  `pk` int NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `abrev` varchar(1) DEFAULT NULL,
  `population` int unsigned DEFAULT NULL,
  `location` varchar(45) DEFAULT NULL,
  `introduction` varchar(45) DEFAULT NULL,
  `festival` varchar(45) DEFAULT NULL,
  `last_modi_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `last_modi_by` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `backup` char(1) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'N',
  `remark` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`pk`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='民族';

CREATE TABLE `students` (
  `pk` int NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `ethnic_pk` int DEFAULT NULL,
  `ethnic_name` varchar(45) DEFAULT NULL,
  `gender` varchar(45) DEFAULT NULL,
  `age` varchar(45) DEFAULT NULL,
  `last_modi_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `last_modi_by` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `backup` char(1) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'N',
  `remark` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`pk`),
  KEY `ethnic_pk_idx` (`ethnic_pk`),
  CONSTRAINT `ethnic_pk` FOREIGN KEY (`ethnic_pk`) REFERENCES `ethnic` (`pk`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


CREATE TABLE `cloumn_headtext` (
  `pk` int NOT NULL AUTO_INCREMENT,
  `column` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `head_text` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`pk`),
  UNIQUE KEY `pk_UNIQUE` (`pk`)
) ENGINE=InnoDB AUTO_INCREMENT=1033 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

说明:本框架中为了能给DGV的HeadText一个友好的内容,增加了一个cloumn_headtext,用于对列名的解释。

二、基础数据录入

上述表中ethnic 和class是基础数据表,students 是业务数据表,该表引用 ethnic 和class表。

生成基础录入表

首先打开VS studio, 生成一个新的解决方案,maraSunDB,将本框架的基本文件(整理后上传,目前还没有整理)添加到项目中,注意命名空间是maraSunDB。
新建一个名字为 class 的, 如图
在这里插入图片描述
进入代码,可以看到

 public partial class ClassForm : Form
    {
        public ClassForm()
        {
            InitializeComponent();
        }
    }

修改为

 public partial class ClassForm : BaseInputForm
    {
        public ClassForm()
        {
            InitializeComponent();
        }
    }

进入设计器模式,可以看到界面已经发生改变
如图
在这里插入图片描述
进行必要的调整,增加下列控件,并增加Form_load 事件,
在这里插入图片描述
其中班级名称后的textbox 名称为 txt_name, tag 内容 人数后面的 NumericUpDown 名称为 nud_number
如图:

在这里插入图片描述
表示不许为空,以及唯一性。

双击界面增加 load 事件,然后再load事件中,加入下列代码


        private void ClassForm_Load(object sender, EventArgs e)
        {
            InitInputForm("class", "班级录入", "班级", "name");
        }

至此, 基本代码已经完成。
要想使用验证上面的代码,还要建立数据库连接字符串等等。本代码已经建立好输入界面,可以再运行后进行修改。在班级菜单中,增加下列代码

       private void 班级ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ClassForm classFm = new ClassForm();
            classFm.MdiParent = this;
            classFm.Show();
        }

编译运行
修改数据库连接参数

在这里插入图片描述

测试连接,如果连接正常,点击确定。
然后

在这里插入图片描述得到

得到

在这里插入图片描述

点击 【增加】, 并且录入数据如下

在这里插入图片描述
点击 【保存】,得到
在这里插入图片描述
可以看到数据录入成功!还可以进行简单的查询修改操作等等,不再赘述。
还以对数据有效性进行检查,请自行测试。
是不是很简单?
仿照同样的方法,完成 ethnic 的录入。
下文将演示如何录入 students 这个比较复杂的表。

MaraSun BJFWDQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值