IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【C#】实验9 -> 正文阅读

[大数据]【C#】实验9

设计项目s9,创建如下图所示的WinForms应用程序。这个“病人管理系统”应接受病人的详细信息,并将病人的记录插入SqlServer或MySQL数据库中。该数据库的结构见下表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
窗体设计:
在这里插入图片描述
数据库设计:
在MySQL中建立patient数据库,所用软件为HeidiSQL,该数据库内含四张表:病人数据表P、医生数据表D、科室数据表K、类型数据表L。各表的属性如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SQL源码:

-- 导出 patient 的数据库结构
CREATE DATABASE IF NOT EXISTS `patient` 
USE `patient`;

-- 导出  表 patient.d 结构
CREATE TABLE IF NOT EXISTS `d` (
  `医生编号` varchar(5) NOT NULL,
  `姓名` varchar(8) DEFAULT NULL,
  `性别` varchar(4) DEFAULT '男',
  `科室` varchar(4) DEFAULT NULL,
  PRIMARY KEY (`医生编号`),
  KEY `FK_d_k` (`科室`),
  CONSTRAINT `FK_d_k` FOREIGN KEY (`科室`) REFERENCES `k` (`科室编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='病人管理系统的医生数据表';

-- 数据导出被取消选择。

-- 导出  表 patient.k 结构
CREATE TABLE IF NOT EXISTS `k` (
  `科室编号` varchar(4) NOT NULL,
  `科室名称` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`科室编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='病人管理系统的科室数据表';

-- 数据导出被取消选择。

-- 导出  表 patient.l 结构
CREATE TABLE IF NOT EXISTS `l` (
  `类别编号` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'L1',
  `类别名称` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '轻微',
  PRIMARY KEY (`类别编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='病人管理系统的类型数据表';

-- 数据导出被取消选择。

-- 导出  表 patient.p 结构
CREATE TABLE IF NOT EXISTS `p` (
  `病人编号` varchar(50) NOT NULL,
  `姓名` varchar(8) DEFAULT NULL,
  `年龄` int DEFAULT NULL,
  `性别` char(4) DEFAULT '男',
  `医生` varchar(5) DEFAULT NULL,
  `病症` tinytext,
  `类别` varchar(5) DEFAULT NULL,
  PRIMARY KEY (`病人编号`),
  KEY `FK_p_d` (`医生`),
  KEY `FK_p_l` (`类别`),
  CONSTRAINT `FK_p_d` FOREIGN KEY (`医生`) REFERENCES `d` (`医生编号`),
  CONSTRAINT `FK_p_l` FOREIGN KEY (`类别`) REFERENCES `l` (`类别编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='病人管理系统的病人数据表';

-- 数据导出被取消选择。

MainForm.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-26
 * 功能:病人管理系统
 */

using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace s9
{
	public partial class MainForm : Form
	{
		public MainForm()
		{
			InitializeComponent();
		}
		void Button1Click(object sender, EventArgs e)
		{
            string PatientNumber, PatientName, PatientSex, PatientDoctor, PatientSymptom, PatientType;
            int PatientAge;
            /*这里注意修改成自己的MySQL用户名和密码!!!*/
            string Connection = "data source=localhost;database=patient;user id=你自己的MySQL用户名;password=你的MySQL密码;pooling=true;charset=utf8;";
            using(MySqlConnection msc = new MySqlConnection(Connection))
            {
            	PatientNumber = textBox1.Text;
            	PatientName = textBox2.Text;
            	PatientAge = int.Parse(textBox3.Text);
            	PatientSex = "";
            	if(radioButton1.Checked)
            	{
            		PatientSex = radioButton1.Text;
            	}
            	else if(radioButton2.Checked)
            	{
            		PatientSex = radioButton2.Text;
            	}
            	PatientDoctor = comboBox1.Text;
            	PatientType = comboBox2.Text;
            	PatientSymptom = textBox4.Text;
            	
            	msc.Open();
            	string sql = "INSERT INTO p values('" + PatientNumber + "','" + PatientName + "','" + PatientAge + "','" + PatientSex + "','" + PatientDoctor + "','" + PatientSymptom + "','" + PatientType + "')";
                MySqlCommand cmd = new MySqlCommand(sql, msc);
                cmd.ExecuteNonQuery();
                msc.Close();
                
                MessageBox.Show("添加成功!");
                textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
                textBox4.Text = "";
                comboBox1.Text = "";
                comboBox2.Text = "";
            }
		}
		void Button2Click(object sender, EventArgs e)
		{
			Close();
		}
		void MainFormLoad(object sender, EventArgs e)
		{
		    /*这里注意修改成自己的MySQL用户名和密码!!!*/
	        string Connection = "data source=localhost;database=patient;user id=你自己的MySQL用户名;password=你的MySQL密码;pooling=true;charset=utf8;";
            using(MySqlConnection msc = new MySqlConnection(Connection))
            {
            	msc.Open();
            	string sql1 = "select 医生编号 from d";
            	MySqlCommand cmd1 = new MySqlCommand(sql1, msc);
            	MySqlDataReader reader1 = cmd1.ExecuteReader();
            	while(reader1.Read())
            	{
            		comboBox1.Items.Add((string)reader1["医生编号"]);
            	}
            	msc.Close();
            	
            	msc.Open();
            	string sql2 = "select 类别编号 from l";
            	MySqlCommand cmd2 = new MySqlCommand(sql2, msc);
            	MySqlDataReader reader2 = cmd2.ExecuteReader();
            	while(reader2.Read())
            	{
            		comboBox2.Items.Add((string)reader2["类别编号"]);
            	}
            	msc.Close();
            }
		}
	}
}

Program.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-26
 * 功能:病人管理系统
 */

using System;
using System.Windows.Forms;

namespace s9
{
	internal sealed class Program
	{
		[STAThread]
		private static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}
	}
}

测试结果:
运行程序,弹出如下界面:
在这里插入图片描述
输入病人编号为20211028_1234,姓名为小明,性别为男,年龄为25,医生为李华(D0007),类别为轻微(L1),病症为“感冒,头晕,流鼻涕”,按下“添加”按钮,自动弹出“添加成功”提示窗体,查看数据库中的P表,发现多了一行病人数据,即为刚刚插入的病人信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入病人编号为20211028_8888,姓名为小红,性别为女,年龄为55,医生为李四(D0002),类别为普通(L2),病症为“腰肌劳损”,按下“添加”按钮,自动弹出“添加成功”提示窗体,查看数据库中的P表,发现多了一行病人数据,即为刚刚插入的病人信息。
在这里插入图片描述
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:06:54  更:2021-10-29 13:09:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:08:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码