首页 > 分享 > C# 宠物医院管理系统

C# 宠物医院管理系统

说明

此系统同时支持mysql,sqlserver,有javaswing窗体和C#窗体两套代码

数据库文件

宠物医院管理系统

数据库设计

关系模型

管理员(主键,用户名,密码,名称,电话)

医生(主键,用户名,密码,头像,名称,性别,电话,编号)

宠物主人(主键,姓名,性别,电话,备注)

宠物(主键,名称,品种,年龄,性格,其他信息,主人)

预约宠物就诊(主键,预约医生,就诊宠物,宠物症状,状态,医生留言,看病费用,创建时间)

药品(主键,名称,编号,功效)

数据字典

管理员表

字段名

字段

数据类型

约束

描述

主键

id

varchar(40)

primary key;

唯一标识

用户名

username

varchar(20)

not null;unique;

不可为空;字段唯一;

密码

password

varchar(20)

名称

name

varchar(18)

not null;unique;

不可为空;字段唯一;

电话

tele

varchar(11)

医生表

字段名

字段

数据类型

约束

描述

主键

id

varchar(40)

primary key;

唯一标识

用户名

username

varchar(20)

not null;unique;

不可为空;字段唯一;

密码

password

varchar(20)

头像

pic

varchar(255)

名称

name

varchar(18)

not null;unique;

不可为空;字段唯一;

性别

gender

varchar(10)

电话

tele

varchar(11)

编号

numb

varchar(32)

not null;unique;

不可为空;字段唯一;

宠物主人表

字段名

字段

数据类型

约束

描述

主键

id

varchar(40)

primary key;

唯一标识

姓名

name

varchar(18)

not null;unique;

不可为空;字段唯一;

性别

gender

varchar(10)

电话

tele

varchar(11)

备注

notes

varchar(255)

宠物表

字段名

字段

数据类型

约束

描述

主键

id

varchar(40)

primary key;

唯一标识

名称

name

varchar(18)

not null;unique;

不可为空;字段唯一;

品种

type

varchar(255)

年龄

age

int

性格

xingge

varchar(255)

其他信息

infos

varchar(255)

主人

zhuren

varchar(255)

预约宠物就诊表

字段名

字段

数据类型

约束

描述

主键

id

varchar(40)

primary key;

唯一标识

预约医生

doctorId

varchar(255)

not null;

不可为空;

就诊宠物

mypet

varchar(255)

not null;

不可为空;

宠物症状

petstatus

varchar(255)

not null;

不可为空;

状态

status

varchar(255)

"已预约"

医生留言

liuyan

varchar(255)

""

看病费用

prices

double

0.0

创建时间

createtime

datetime

not null;

new Date()

药品表

字段名

字段

数据类型

约束

描述

主键

id

varchar(40)

primary key;

唯一标识

名称

name

varchar(18)

not null;unique;

不可为空;字段唯一;

编号

numb

varchar(32)

not null;unique;

不可为空;字段唯一;

功效

gongxiao

varchar(255)

部分代码

package com.codeying.frame;

import com.codeying.dao.*; import com.codeying.entity.*;

import com.codeying.utils.*;

import com.codeying.utils.excel.ExcelUtil;

import com.mysql.cj.util.StringUtils;

import javax.swing.*;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

import javax.swing.plaf.FontUIResource;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableColumn;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.*;

import java.util.List;

import java.io.*;

public class FormDoctorData extends JInternalFrame {

private Boolean editPermission = false;

DoctorDao dao = DoctorDao.me();

private List<Doctor> listData;

public FormDoctorData () {

initialize();

initPrivilege();

initData();

query(null);

}

private void initPrivilege(){

String role = Login.type;

if (role == "admin")

{

jButtonDel.setVisible(true);

jButtonEdit.setVisible(true);

editPermission = true;

}

if (role == "doctor")

{

tb_password.setEnabled(false);

}

if(Config.export){

jButtonExport.setVisible(true);

}

}

public void initData() {

List<String> l = new ArrayList<>();

l.add("主键");

l.add("用户名");

l.add("密码");

l.add("头像");

l.add("名称");

l.add("性别");

l.add("电话");

l.add("编号");

String heads[] = l.toArray(new String[0]);

model = new DefaultTableModel(null, heads);

con_gender .addItem(""); tb_gender .addItem("");

con_gender .addItem("男"); tb_gender .addItem("男");

con_gender .addItem("女"); tb_gender .addItem("女");

}

public class BtnListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

String s;

if(e.getSource().equals(jButtonQuery)){

Map<String,String> paramMap = new HashMap<>();

s = con_username .getText().trim();

if(!StringUtils.isNullOrEmpty(s)) paramMap.put("username",s);

s = con_name .getText().trim();

if(!StringUtils.isNullOrEmpty(s)) paramMap.put("name",s);

s = (String)con_gender .getSelectedItem();

if(!StringUtils.isNullOrEmpty(s))paramMap.put("gender",s);

query(paramMap);

}else if(e.getSource().equals(jButtonDel)){

String id = tb_id.getText().trim();

if(StringUtils.isNullOrEmpty(id)){

JOptionPane.showMessageDialog(null, "未选中任何记录!");return;

}

int opt = JOptionPane.showConfirmDialog(null, "确认删除?", "确认信息", JOptionPane.YES_NO_OPTION);

if (opt == JOptionPane.YES_OPTION) {

int res = dao.deleteById(id);

if(res == 0){

JOptionPane.showMessageDialog(null, "删除失败!");

}else {

JOptionPane.showMessageDialog(null, "删除成功!");

query(null);

}

}

}else if(e.getSource().equals(jButtonEdit)){

String id = tb_id.getText().trim();

if(StringUtils.isNullOrEmpty(id)){

JOptionPane.showMessageDialog(null, "未选中任何记录!");return;

}

if (StringUtils.isNullOrEmpty(tb_name .getText().trim()))

{

JOptionPane.showMessageDialog(null, "名称 不可为空");return;

}

if (StringUtils.isNullOrEmpty(tb_numb .getText().trim()))

{

JOptionPane.showMessageDialog(null, "编号 不可为空");return;

}

Doctor t = new Doctor ();

String templateStr;

t.setId(id);

t.setId (tb_id .getText().trim());

templateStr = tb_username .getText().trim();

if(FormDoctorAdd .illegalAdd(id,"username",templateStr)){

JOptionPane.showMessageDialog(null, "用户名 : 已存在!");return;

}

t.setUsername (templateStr);

t.setPassword (tb_password .getText().trim());

t.setPic (tb_pic .getText().trim());

templateStr = tb_name .getText().trim();

if(FormDoctorAdd .illegalAdd(id,"name",templateStr)){

JOptionPane.showMessageDialog(null, "名称 : 已存在!");return;

}

t.setName (templateStr);

t.setGender ((String)(tb_gender .getSelectedItem()));

t.setTele (tb_tele .getText().trim());

templateStr = tb_numb .getText().trim();

if(FormDoctorAdd .illegalAdd(id,"numb",templateStr)){

JOptionPane.showMessageDialog(null, "编号 : 已存在!");return;

}

t.setNumb (templateStr);

int res = dao.updateById(t);

if(res == 0){

JOptionPane.showMessageDialog(null, "更新失败!");

}else {

JOptionPane.showMessageDialog(null, "更新成功!");

query(null);

}

}

else if(e.getSource().equals(jButtonExport)){

List<Doctor> data = dao.list();

for(Doctor stAv : data){

}

HashMap<String,String> headMap = new LinkedHashMap<>();

headMap.put("username","用户名");

headMap.put("password","密码");

headMap.put("pic","头像");

headMap.put("name","名称");

headMap.put("gender","性别");

headMap.put("tele","电话");

headMap.put("numb","编号");

try {

File f=new File("医生数据.xls");

OutputStream out = new FileOutputStream(f);

ExcelUtil.exportExcel(headMap, data, out);

out.close();

JOptionPane.showMessageDialog(null, "导出成功:"+f.getAbsolutePath());

} catch (Exception exception) {

exception.printStackTrace();

}

}

}

}

public class TableListener implements ListSelectionListener {

public void valueChanged(ListSelectionEvent e) {

if (jTable.getSelectedRow() != -1) {

Object o;

int index = jTable.getSelectedRow();

tb_id .setText(jTable.getValueAt(index,0).toString());

tb_username .setText(jTable.getValueAt(index,1).toString());

if(editPermission)

tb_password .setText(jTable.getValueAt(index,2).toString());

tb_pic .setText(jTable.getValueAt(index,3).toString());

tb_name .setText(jTable.getValueAt(index,4).toString());

o = jTable.getValueAt(index,5);

tb_gender .setSelectedItem(o == null?"":o.toString());

tb_tele .setText(jTable.getValueAt(index,6).toString());

tb_numb .setText(jTable.getValueAt(index,7).toString());

}

}

}

private void query(Map<String,String> wrapper){

if(wrapper == null){

wrapper = new HashMap<>();

}

listData = dao.list(wrapper);

for (Doctor t : listData){

}

int count = listData.size();

jLabelCounts.setText("记录数:" + count + "");

String labelStaAvg = "";

jLabelTips.setText(labelStaAvg);

model.setRowCount(count);

String d;

for(int i=0;i<count;i++){

int j = 0;

model.setValueAt(listData.get(i).getId (), i, j);

j++;

model.setValueAt(listData.get(i).getUsername (), i, j);

j++;

model.setValueAt(listData.get(i).getPassword (), i, j);

j++;

model.setValueAt(listData.get(i).getPic (), i, j);

j++;

model.setValueAt(listData.get(i).getName (), i, j);

j++;

model.setValueAt(listData.get(i).getGender (), i, j);

j++;

model.setValueAt(listData.get(i).getTele (), i, j);

j++;

model.setValueAt(listData.get(i).getNumb (), i, j);

j++;

}

jTable.setModel(model);

jTable.setAutoCreateRowSorter(true);

hideColumn(jTable,0);

if(!editPermission) hideColumn(jTable,2);

}

void hideColumn(JTable table,int column) {

TableColumn tc = table.getColumnModel().getColumn(column);

tc.setMaxWidth(0);

tc.setPreferredWidth(0);

tc.setWidth(0);

tc.setMinWidth(0);

table.getTableHeader().getColumnModel().getColumn(column).setMaxWidth(0);

table.getTableHeader().getColumnModel().getColumn(column).setMinWidth(0);

}

private void initialize() {

int x,y;

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

this.setResizable(true);

this.setClosable(true);

this.setMaximizable(true);

this.setIconifiable(true);

this.setSize(1200, 650);

this.setTitle("医生");

jPanel.setLayout(null);

jPanel.setBounds(new Rectangle(1, 1, 1150, 80));

jPanel.setBorder(BorderFactory.createTitledBorder("查找数据"));

jPanel.add(jButtonQuery, null);

jButtonQuery.setBounds(new Rectangle(1000, 50, 100, 24));

jPanel.add( labelC_username, null);

labelC_username .setBounds(new Rectangle(10, 20, 60, 24));

jPanel.add(con_username, null);

con_username .setBounds(new Rectangle(80, 20, 100, 24));

jPanel.add( labelC_name, null);

labelC_name .setBounds(new Rectangle(185, 20, 60, 24));

jPanel.add(con_name, null);

con_name .setBounds(new Rectangle(255, 20, 100, 24));

jPanel.add( labelC_gender, null);

labelC_gender .setBounds(new Rectangle(360, 20, 60, 24));

jPanel.add(con_gender, null);

con_gender .setBounds(new Rectangle(430, 20, 100, 24));

this.setContentPane(jContentPane);

jContentPane.setLayout(null);

jContentPane.setBorder(BorderFactory.createTitledBorder(""));

jContentPane.add(jPanel, null);

jContentPane.add(jScrollPane, null);

jScrollPane.setBounds(new Rectangle(10, 110, 950, 450));

jScrollPane.setViewportView(jTable);

jContentPane.add(jLabelCounts, null);

jLabelCounts.setBounds(new Rectangle(10, 85, 200, 24));

jContentPane.add(jLabelTips, null);

jLabelTips.setBounds(new Rectangle(10, 560, 650, 24));

jContentPane.add(tb_id);

tb_id.setBounds(new Rectangle(600, 85, 100, 24));

tb_id.setVisible(false);

x = 970; y = 110;

jContentPane.add(label_username, null);

label_username .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_username, null);

tb_username .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

tb_username .setEnabled(false);

jContentPane.add(label_password, null);

label_password .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_password, null);

tb_password .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

jContentPane.add(label_pic, null);

label_pic .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_pic, null);

tb_pic .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

jContentPane.add(label_name, null);

label_name .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_name, null);

tb_name .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

jContentPane.add(label_gender, null);

label_gender .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_gender, null);

tb_gender .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

jContentPane.add(label_tele, null);

label_tele .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_tele, null);

tb_tele .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

jContentPane.add(label_numb, null);

label_numb .setBounds(new Rectangle(x, y, 65, 24));

jContentPane.add(tb_numb, null);

tb_numb .setBounds(new Rectangle(x+65, y, 130, 24));

y+=35;

jContentPane.add(jButtonDel, null);

jButtonDel.setVisible(false);

jButtonDel.setBounds(new Rectangle(x, y, 80, 24));

jContentPane.add(jButtonEdit, null);

jButtonEdit.setVisible(false);

jButtonEdit.setBounds(new Rectangle(x+90, y, 80, 24));

jContentPane.add(jButtonExport, null);

jButtonExport.setVisible(false);

jButtonExport.setBounds(new Rectangle(800, 85, 150, 24));

jButtonQuery.addActionListener(listener);

jButtonEdit.addActionListener(listener);

jButtonExport.addActionListener(listener);

jButtonDel.addActionListener(listener);

jTable.getSelectionModel().addListSelectionListener(new TableListener());

}

BtnListener listener = new BtnListener();

private JPanel jContentPane = new JPanel();

private JPanel jPanel = new JPanel();

private JLabel jLabelCounts = new JLabel("记录数量:xx条");

private JLabel jLabelTips = new JLabel("统计信息...");

private JScrollPane jScrollPane = new JScrollPane();

private JTable jTable = new JTable();

DefaultTableModel model = new DefaultTableModel();

private JButton jButtonEdit = new JButton("保存");

private JButton jButtonExport = new JButton("导出到excel");

private JButton jButtonDel = new JButton("删除");

private JButton jButtonQuery = new JButton("查询");

private JTextField tb_id = new JTextField();

private JLabel label_username = new JLabel("用户名");

private JTextField tb_username = new JTextField();

private JLabel labelC_username = new JLabel("用户名");

private JTextField con_username = new JTextField();

private JLabel label_password = new JLabel("密码");

private JTextField tb_password = new JTextField();

private JLabel label_pic = new JLabel("头像");

private JTextField tb_pic = new JTextField();

private JLabel label_name = new JLabel("名称");

private JTextField tb_name = new JTextField();

private JLabel labelC_name = new JLabel("名称");

private JTextField con_name = new JTextField();

private JLabel label_gender = new JLabel("性别");

private JComboBox tb_gender = new JComboBox();

private JLabel labelC_gender = new JLabel("性别");

private JComboBox con_gender = new JComboBox();

private JLabel label_tele = new JLabel("电话");

private JTextField tb_tele = new JTextField();

private JLabel label_numb = new JLabel("编号");

private JTextField tb_numb = new JTextField();

}

系统截图

 

 

 

相关知识

C#(asp.net) 宠物领养系统
宠物管理系统数据流图
宠物医院管理系统
宠物管理系统毕业设计实现
【宠物医院管理系统
【Python Django + Vue】宠物医院管理系统,一键预约挂号,智能病历管理,实时药品监控,全方位客户服务,打造宠物医疗新体验
宠物医院智能管理系统
SpringBoot+Vue宠物医院管理系统
PHMS宠物医院管理系统
【宠物医院管理系统网络版】宠物医院管理系统网络版 2009.0412

网址: C# 宠物医院管理系统 https://m.mcbbbk.com/newsview751799.html

所属分类:萌宠日常
上一篇: 【宠物管理系统数据库设计】:从业
下一篇: Java/SSM爱宠宠物商店管理