【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表,发现多了一行病人数据,即为刚刚插入的病人信息。
在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeron Zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值