精华内容
下载资源
问答
  • 创建一个名为学生信息的窗体
    千次阅读
    2015-04-22 21:00:38

            好吧,对这块的知识学习早已期待已久,感觉学习的进度还是慢了,最近一直在学习Winform,不得不说一些登陆窗体的设计,这几天算是小有收获,自己也看了许多这方面的知识,知道了要想做学生信息管理系统是一个漫长的过程,但是从今天起就来慢慢地进行学生信息管理系统的构建,此外还用到数据库的知识,打算着自己开始学数据库的知识,今天就来看看学生信息管理系统登录窗口的设计。下面图片的是样例:

     

           这方面的知识还是基于C#语言和.NET Framework平台的。自己所用的还是熟悉的开发环境VS2012,感觉VS2013和最近要出的VS2015没有什么大的改变,决定还是用VS2012来构建学生信息管理系统登录窗口。

           首先在VS2012下创建一个Windows窗体应用程序,起名字为WindowsForms,所要创建的登录窗口就是在这个基础上进行设计的,这个过程就不再详细的介绍。

           其次就是进行登录窗口的名字的修改,单击窗体设计,在属性的一栏找到Text(设置窗体名称)属性将名字改为学生信息管理系统,再次单击窗体设计即名字修改成功。

     

           然后就是对窗体的一些属性进行更改:1默认的情况下的属性MaximizeBox(窗口的最大化)和MinimizBox(窗口的最小化)是True,这个视情况而定,在这里将不予修改。2默认的情况下运行程序时窗体的属性StartPositio(开始位置)是WindowsDefaultLocation(随机位置),将其改为CenterScreen(屏幕的中央位置)。3默认的情况下属性ShowIcon(是否在窗体标题栏显示图标)是True以及属性ShowInTaskbas(是否窗体在Windows的任务栏显示)是True。4默认的情况下属性FormBorderStyle(窗口的模式)是Sizable(双线窗口大小可更改),将此改为FixedSingle(单线不可更改大小)。其他的属性视情况而定,自己需要修改的时候可进行更改,这个学生信息管理系统登陆窗口相对简单所以不进行过多的窗体设计。

           再者就是登陆窗口的背景,这个也是在属性中进行设置,找到属性BackgroundImage(背景图片),单击这个属性,会出现选择资源的对话框,自己进行图片的添加,把自己想要做背景的图片导入到框中即可,最后单击确定就完成了导入背景图片。

     

           再然后就是想在窗体设计上添加控件,在这里简单的登陆窗口需要用到三个控件,第一个用到的就是Lable,它的作用就是为控件运行时提供必要的文字性的说明或解释,向窗体添加两个Lable控件:第一个控件的属性Text改为登录名称:,第二个控件的属性Text改为登录密码:。第二个用到的就是TextBox,它的作用就是允许用户输入文本,并且提供密码的掩饰功能。向窗体添加两个TextBox控件,第一个控件为登录名称所输入的信息,第二个控件为登录密码所输入的文本,在这里要进行密码的掩码功能属性,单击控件,找到他的属性PasswordChar将其改为* 即可。第三个用到的控件就是Button,向窗体添加两个Button控件,第一个控件的属性Text改为确定,第二个控件的属性Text改为取消即可。向窗体添加控件的过程基本上算是完成。

     

           最后就是再次对比你所要设计的登陆窗口的设计图进行调试,直到正常执行为止。启动执行调试,这就完成了学生信息管理系统登录窗口的设计。

     

            以上的步骤是学生信息管理系统的简单的登录窗口,在以后的学习中还会进行必要的修改和设计,今天还是蛮有成就感的。自己也在想着设计一个简易计算器的窗体程序,现在也是对这方面的知识开了一个头。

         

     

    更多相关内容
  • SWING窗体的综合运用,一个学生管理系统

    今天给大家带来一个初学者的连接数据库的学生管理系统

    首先写一个数据库帮助类(DBHepler)

    package com.zking.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    
    public class DBHepler {
    	//静态代码
    	private static String cname = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    	private static String uname = "数据库用户名";
    	private static String upwd = "数据库密码";
    	private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=表名";
    	
    	/**
    	 * 静态驱动
    	 */
    	static {
    		try {
    			//创建驱动
    			Class.forName(cname);
    		} catch (Exception e) {
    			//处理异常
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * 静态连接
    	 * @return	连接
    	 */
    	public static Connection getcon() {
    		//定义连接
    		Connection con = null;
    		try {
    			//连接驱动
    			con = DriverManager.getConnection(url, uname, upwd);
    		} catch (Exception e) {
    			//处理异常
    			e.printStackTrace();
    		}
    		//返回连接
    		return con;
    	}
    	
    	/**
    	 * 关闭连接
    	 * @param con	连接
    	 * @param ps	执行对象
    	 * @param rs	结果集
    	 */
    	public static void getclose(Connection con,PreparedStatement ps,ResultSet rs) {
    		try {
    			if(con!=null) {//关闭连接
    				con.close();
    			}
    			if(ps!=null) {//关闭执行对象
    				ps.close();
    			}
    			if(rs!=null) {//关闭结果集
    				rs.close();
    			}
    		} catch (Exception e) {
    			//处理异常
    			e.printStackTrace();
    		}
    	}
    	
    }
    

    我们在来一个实体类(Student)

    package com.zking.entity;
    
    
    public class Student {
    	//私有化属性
    	private int sid;//学号
    	private String sname;//姓名
    	private String ssex;//性别
    	private String slike;//爱好
    	private String saddress;//地址
    	private String sinfo;//简介
    	
    	//公开属性
    	public int getSid() {
    		return sid;
    	}
    	public void setSid(int sid) {
    		this.sid = sid;
    	}
    	public String getSname() {
    		return sname;
    	}
    	public void setSname(String sname) {
    		this.sname = sname;
    	}
    	public String getSsex() {
    		return ssex;
    	}
    	public void setSsex(String ssex) {
    		this.ssex = ssex;
    	}
    	public String getSlike() {
    		return slike;
    	}
    	public void setSlike(String slike) {
    		this.slike = slike;
    	}
    	public String getSaddress() {
    		return saddress;
    	}
    	public void setSaddress(String saddress) {
    		this.saddress = saddress;
    	}
    	public String getSinfo() {
    		return sinfo;
    	}
    	public void setSinfo(String sinfo) {
    		this.sinfo = sinfo;
    	}
    	
    	//构造函数
    	public Student() {
    		super();
    	}
    	public Student(int sid, String sname, String ssex, String slike, String saddress, String sinfo) {
    		super();
    		this.sid = sid;
    		this.sname = sname;
    		this.ssex = ssex;
    		this.slike = slike;
    		this.saddress = saddress;
    		this.sinfo = sinfo;
    	}
    	public Student(String sname, String ssex, String slike, String saddress, String sinfo) {
    		super();
    		this.sname = sname;
    		this.ssex = ssex;
    		this.slike = slike;
    		this.saddress = saddress;
    		this.sinfo = sinfo;
    	}
    }
    

    接着是方法类(Student_Dao)

    里面有添加方法和删除方法,修改方法,模糊查询,单个查询

    package com.zking.dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    
    import com.zking.entity.Student;
    import com.zking.util.DBHepler;
    
    
    public class Student_dao {
    	/**
    	 * 添加方法
    	 * @param t	要添加学生信息
    	 * @return	成功放回1,失败放回0
    	 */
    	public int add(Student t) {
    		//定义影响行数
    		int i = 0;
    		//定义连接为null
    		Connection con = null;
    		//定义执行对象为null
    		PreparedStatement ps = null;
    		try {
    			//执行连接
    			con = DBHepler.getcon();
    			//执行sql语句
    			ps = con.prepareStatement("insert into student values (?,?,?,?,?)");
    			//给占位符赋值
    			ps.setString(1, t.getSname());
    			ps.setString(2, t.getSsex());
    			ps.setString(3, t.getSlike());
    			ps.setString(4, t.getSaddress());
    			ps.setString(5, t.getSinfo());
    			//计算影响行数
    			i = ps.executeUpdate();
    		} catch (Exception e) {
    			// TODO: handle exception
    			//处理异常
    			e.printStackTrace();
    		}finally {
    			//关闭资源
    			DBHepler.getclose(con, ps, null);
    		}
    		//返回影响行数
    		return i;
    	}
    	
    	/**
    	 * 修改方法
    	 * @param sid	修改前学生
    	 * @param s		修改后学生信息
    	 * @return		成功放回1,失败放回0
    	 */
    	public int update(int sid,Student t) {
    		//定义影响行数
    		int i = 0;
    		//定义连接为null
    		Connection con = null;
    		//定义执行对象为null
    		PreparedStatement ps = null;
    		try {
    			//执行连接
    			con = DBHepler.getcon();
    			//执行sql语句
    			ps = con.prepareStatement("update student set sname=?,ssex=?,slike=?,saddress=?,sinfo=? where sid="+sid);
    			//给占位符赋值
    			ps.setString(1, t.getSname());
    			ps.setString(2, t.getSsex());
    			ps.setString(3, t.getSlike());
    			ps.setString(4, t.getSaddress());
    			ps.setString(5, t.getSinfo());
    			//计算影响行数
    			i = ps.executeUpdate();
    		} catch (Exception e) {
    			// TODO: handle exception
    			//处理异常
    			e.printStackTrace();
    		}finally {
    			//关闭资源
    			DBHepler.getclose(con, ps, null);
    		}
    		//返回影响行数
    		return i;
    	}
    	
    	/**
    	 * 删除方法
    	 * @param sid 要删除学生信息
    	 * @return	成功放回1,失败放回0
    	 */
    	public int delete(int sid) {
    		//定义影响行数
    		int i = 0;
    		//定义连接为null
    		Connection con = null;
    		//定义执行对象为null
    		PreparedStatement ps = null;
    		try {
    			//执行连接
    			con = DBHepler.getcon();
    			//执行sql语句
    			ps = con.prepareStatement("delete from student where sid="+sid);
    			//计算影响行数
    			i = ps.executeUpdate();
    		} catch (Exception e) {
    			// TODO: handle exception
    			//处理异常
    			e.printStackTrace();
    		}finally {
    			//关闭资源
    			DBHepler.getclose(con, ps, null);
    		}
    		//返回影响行数
    		return i;
    	}
    	
    	/**
    	 * 模糊查询
    	 * @param col	字段名
    	 * @param str	关键字
    	 * @return	集合信息
    	 */
    	public ArrayList<Student> like(String col,String str) {
    		//定义一个实体类集合
    		ArrayList<Student> list = new ArrayList<>();
    		//定义连接为null
    		Connection con = null;
    		//定义执行对象为null
    		PreparedStatement ps = null;
    		//定义结果集为null
    		ResultSet rs = null;
    		try {
    			//执行连接
    			con = DBHepler.getcon();
    			//执行sql语句
    			ps = con.prepareStatement("select * from student where "+col+" like '%"+str+"%'");
    			//执行结果集
    			rs = ps.executeQuery();
    			//遍历
    			while(rs.next()) {
    				//赋值
    				int sid = rs.getInt(1);
    				String sname = rs.getString(2);
    				String ssex = rs.getString(3);
    				String slike = rs.getString(4);
    				String saddress = rs.getString(5);
    				String sinfo = rs.getString(6);
    				//实例化对象赋值
    				Student stu = new Student(sid,sname, ssex, slike, saddress, sinfo);
    				//添加
    				list.add(stu);
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    			//处理异常
    			e.printStackTrace();
    		}finally {
    			//关闭资源
    			DBHepler.getclose(con, ps, rs);
    		}
    		//返回集合信息
    		return list;
    	}
    	
    	/**
    	 * 查询单个
    	 * @param sid	要查询的学生id
    	 * @return	实体类信息
    	 */
    	public Student chaxun(int sid) {
    		//定义一个实体类为null
    		Student stu = null;
    		//定义连接为null
    		Connection con = null;
    		//定义执行对象为null
    		PreparedStatement ps = null;
    		//定义结果集为null
    		ResultSet rs = null;
    		try {
    			//执行连接
    			con = DBHepler.getcon();
    			//执行sql语句
    			ps = con.prepareStatement("select * from student where sid="+sid);
    			//执行结果集
    			rs = ps.executeQuery();
    			//遍历
    			while(rs.next()) {
    				//赋值
    				String sname = rs.getString(2);
    				String ssex = rs.getString(3);
    				String slike = rs.getString(4);
    				String saddress = rs.getString(5);
    				String sinfo = rs.getString(6);
    				//实例化对象赋值
    			    stu = new Student(sid,sname, ssex, slike, saddress, sinfo);
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    			//处理异常
    			e.printStackTrace();
    		}finally {
    			//关闭资源
    			DBHepler.getclose(con, ps, rs);
    		}
    		//返回实体类信息
    		return stu;
    	}
    }
    

    接着就是我们需要的窗体了

    首先是主窗体

     大致是这样的,上面,和下面是画布,中间是表格

    package com.zking.ui;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.Vector;
    
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.table.DefaultTableModel;
    
    import com.zking.dao.Student_dao;
    import com.zking.entity.Student;
    
    
    @SuppressWarnings("serial")
    public class Index_Ui extends JFrame {
    	// 创建上面的画布
    	JPanel jp1 = new JPanel();
    
    	// 创建表格
    	JTable jta = new JTable();
    	// 创建表模式
    	DefaultTableModel def = new DefaultTableModel();
    	// 创建滚动面板
    	JScrollPane jsc = new JScrollPane(jta);
    
    	// 创建下面的画布
    	JPanel jp2 = new JPanel();
    
    	public Index_Ui() {
    		// 创建窗体-标题
    		this.setTitle("主窗体");
    		// 创建窗体-大小
    		this.setSize(500, 500);
    		// 创建窗体-居中
    		this.setLocationRelativeTo(null);
    		// 创建窗体-关闭
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		// 创建下拉框
    		JComboBox<String> jco = new JComboBox<String>();
    		// 添加元素
    		jco.addItem("名称");
    		jco.addItem("性别");
    		jco.addItem("地址");
    
    		// 创建文本框
    		JTextField jtf = new JTextField(10);
    
    		// 创建按钮-查询
    		JButton jb1 = new JButton("查询");
    
    		// 添加的上面的画布
    		jp1.add(jco);
    		jp1.add(jtf);
    		jp1.add(jb1);
    
    		// 设置表模式
    		jta.setModel(def);
    		// 给表模式添加元素
    		def.addColumn("学号");
    		def.addColumn("姓名");
    		def.addColumn("性别");
    		def.addColumn("爱好");
    		def.addColumn("地址");
    		// 调用刷新方法
    		showinfo("sname", "");
    
    		// 创建按钮-添加,删除,修改,详情
    		JButton jb2 = new JButton("添加");
    		JButton jb3 = new JButton("删除");
    		JButton jb4 = new JButton("修改");
    		JButton jb5 = new JButton("详情");
    		// 添加到下面的画布
    		jp2.add(jb2);
    		jp2.add(jb3);
    		jp2.add(jb4);
    		jp2.add(jb5);
    
    		// 给查询按钮内部匿名事件
    		jb1.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				// 获取下拉框的值
    				String col = jco.getSelectedItem() + "";
    				if (col.equals("名称")) {
    					col = "sname";
    				}
    				if (col.equals("性别")) {
    					col = "ssex";
    				}
    				if (col.equals("爱好")) {
    					col = "slike";
    				}
    				// 获取文本框的值
    				String str = jtf.getText();
    				// 调用刷新方法
    				showinfo(col, str);
    			}
    		});
    
    		// 给添加按钮内部匿名事件
    		jb2.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				//打开添加窗体
    				new Add_Ui(Index_Ui.this);
    			}
    		});
    
    		// 给删除按钮内部匿名事件
    		jb3.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				// 获取所选择行数
    				int row = jta.getSelectedRow();
    				// 判断
    				if (row >= 0) {
    					// 获取选择行数的第一个字段值
    					String id = def.getValueAt(row, 0) + "";
    					// 强转
    					int sid = Integer.valueOf(id);
    					if (JOptionPane.showConfirmDialog(null, "是否删除?") == 0) {
    						// 实例化dao类
    						Student_dao sdao = new Student_dao();
    						// 调用dao类删除单个方法,获取影响行数
    						int i = sdao.delete(sid);
    						// 判断
    						if (i == 1) {
    							JOptionPane.showMessageDialog(null, "删除成功");
    							// 调用showinfo的方法
    							showinfo("sname", "");
    						} else {
    							JOptionPane.showMessageDialog(null, "删除失败");
    						}
    
    					} else {
    						JOptionPane.showMessageDialog(null, "取消删除");
    					}
    
    				} else {
    					JOptionPane.showMessageDialog(null, "请选择要删除的学生");
    				}
    			}
    		});
    
    		// 给修改按钮内部匿名事件
    		jb4.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				int row = jta.getSelectedRow();
    				// 判断
    				if (row >= 0) {
    					// 获取选择行数的第一个字段值
    					String id = def.getValueAt(row, 0) + "";
    					// 强转
    					int sid = Integer.valueOf(id);
    					// 实例化dao类
    					Student_dao sdao = new Student_dao();
    					// 调用dao类查询单个方法
    					Student stu = sdao.chaxun(sid);
    					// 打开修改窗体
    					new Upd_Ui(Index_Ui.this, stu);
    				} else {
    					JOptionPane.showMessageDialog(null, "请选择要修改的学生");
    				}
    			}
    		});
    
    		// 给详情按钮内部匿名事件
    		jb5.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				int row = jta.getSelectedRow();
    				// 判断
    				if (row >= 0) {
    					// 获取选择行数的第一个字段值
    					String id = def.getValueAt(row, 0) + "";
    					// 强转
    					int sid = Integer.valueOf(id);
    					// 实例化dao类
    					Student_dao sdao = new Student_dao();
    					// 调用dao类查询单个方法
    					Student stu = sdao.chaxun(sid);
    					// 打开修改窗体
    					new Xq_Ui(stu);
    				} else {
    					JOptionPane.showMessageDialog(null, "请选择要查看的学生");
    				}
    			}
    		});
    
    		// 显示
    		this.getContentPane().add("North", jp1);
    		this.getContentPane().add("Center", jsc);
    		this.getContentPane().add("South", jp2);
    		this.setVisible(true);
    	}
    
    	/**
    	 * 刷新方法,绑定数据
    	 * 
    	 * @param col 字段名
    	 * @param str 关键字
    	 */
    	public void showinfo(String col, String str) {
    		// 获取所有行
    		int count = jta.getRowCount();
    		// 遍历
    		for (int i = 0; i < count; i++) {
    			// 删除所有行
    			def.removeRow(0);
    		}
    		// 实例化dao
    		Student_dao sdao = new Student_dao();
    		// 调拥dao类查询赋值给集合
    		ArrayList<Student> list = sdao.like(col, str);
    		// 遍历
    		for (Student s : list) {
    			// 实例化vc
    			Vector<Object> v = new Vector<>();
    			// 添加数据,绑定数据
    			v.add(s.getSid());
    			v.add(s.getSname());
    			v.add(s.getSsex());
    			v.add(s.getSlike());
    			v.add(s.getSaddress());
    			// 给表绑定数据
    			def.addRow(v);
    		}
    	}
    
    	/**
    	 * 主函数
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		new Index_Ui();
    	}
    }
    

     接着是添加窗体

     我用到的是网袋布局

    package com.zking.ui;
    
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    import com.zking.dao.Student_dao;
    import com.zking.entity.Student;
    
    
    @SuppressWarnings("serial")
    public class Add_Ui extends JFrame{
    	public Add_Ui(Index_Ui i) {
    		// 创建窗体-标题
    		this.setTitle("添加窗体");
    		// 创建窗体-大小
    		this.setSize(500, 500);
    		// 创建窗体-居中
    		this.setLocationRelativeTo(null);
    		// 创建窗体-关闭
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		//创建画布
    		JPanel jp = new JPanel();
    		//网袋布局
    		GridBagLayout gbl = new GridBagLayout();
    		//约束对象
    		GridBagConstraints gbc = new GridBagConstraints();
    		//设置网袋约束
    		jp.setLayout(gbl);
    		
    		//创建文本标签-姓名
    		JLabel jl1 = new JLabel("姓名:");
    		//添加到画布
    		jp.add(jl1);
    		//约束
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		gbl.setConstraints(jl1, gbc);
    		
    		//创建文本框
    		JTextField jtf = new JTextField(10);
    		//添加到画布
    		jp.add(jtf);
    		//约束
    		gbc.gridx = 1;
    		gbc.gridy = 0;
    		gbl.setConstraints(jtf, gbc);
    		
    		//创建文本标签-性别
    		JLabel jl2 = new JLabel("性别:");
    		//添加到画布
    		jp.add(jl2);
    		//约束
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		gbl.setConstraints(jl2, gbc);
    		
    		//单选按钮-男
    		JRadioButton jr1 = new JRadioButton("男");
    		//添加到画布
    		jp.add(jr1);
    		//约束
    		gbc.gridx = 1;
    		gbc.gridy = 1;
    		gbl.setConstraints(jr1, gbc);
    		
    		//单选按钮-女
    		JRadioButton jr2 = new JRadioButton("女");
    		//添加到画布
    		jp.add(jr2);
    		//约束
    		gbc.gridx = 2;
    		gbc.gridy = 1;
    		gbl.setConstraints(jr2, gbc);
    		
    		//单选键设唯一
    		ButtonGroup but = new ButtonGroup();
    		but.add(jr2);
    		but.add(jr1);
    		
    		//创建文本标签-爱好
    		JLabel jl3 = new JLabel("爱好:");
    		//添加到画布
    		jp.add(jl3);
    		//约束
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		gbl.setConstraints(jl3, gbc);
    		
    		//创建多选键-画画
    		JCheckBox jc1 = new JCheckBox("画画");
    		//添加到画布
    		jp.add(jc1);
    		//约束
    		gbc.gridx = 1;
    		gbc.gridy = 2;
    		gbl.setConstraints(jc1, gbc);
    		
    		//创建多选键-听歌
    		JCheckBox jc2 = new JCheckBox("听歌");
    		//添加到画布
    		jp.add(jc2);
    		//约束
    		gbc.gridx = 2;
    		gbc.gridy = 2;
    		gbl.setConstraints(jc2, gbc);
    		
    		//创建文本标签-地址
    		JLabel jl4 = new JLabel("地址:");
    		//添加到画布
    		jp.add(jl4);
    		//约束
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		gbl.setConstraints(jl4, gbc);
    		
    		//创建下拉框
    		JComboBox<String> jco = new JComboBox<>();
    		//添加到画布
    		jp.add(jco);
    		//添加元素
    		jco.addItem("湖南");
    		jco.addItem("深圳");
    		jco.addItem("上海");
    		jco.addItem("杭州");
    		//约束
    		gbc.gridx = 1;
    		gbc.gridy = 3;
    		gbl.setConstraints(jco, gbc);
    		
    		//创建文本标签-简介
    		JLabel jl5 = new JLabel("简介:");
    		//添加到画布
    		jp.add(jl5);
    		//约束
    		gbc.gridx = 0;
    		gbc.gridy = 4;
    		gbl.setConstraints(jl5, gbc);
    		
    		//创建文本域
    		JTextArea jta = new JTextArea(10,10);
    		//创建滚动面板
    		JScrollPane jsc = new JScrollPane(jta);
    		//添加到画布
    		jp.add(jsc);
    		//约束
    		gbc.gridx = 1;
    		gbc.gridy = 4;
    		gbl.setConstraints(jsc, gbc);
    		
    		//创建按钮-确认
    		JButton jb1 = new JButton("确认");
    		//添加到画布
    		jp.add(jb1);
    		//约束
    		gbc.gridx = 0;
    		gbc.gridy = 5;
    		gbl.setConstraints(jb1,gbc);
    		
    		//创建按钮-取消
    		JButton jb2 = new JButton("取消");
    		//添加到画布
    		jp.add(jb2);
    		//约束
    		gbc.gridx = 2;
    		gbc.gridy = 5;
    		gbl.setConstraints(jb2,gbc);
    
    		
    		//给确认按钮内部匿名事件
    		jb1.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				//获取文本框的值
    				String sname = jtf.getText();
    				//获取单选键的值
    				String ssex = "";
    				if(jr1.isSelected()) {
    					ssex = "男";
    				}
    				if(jr2.isSelected()) {
    					ssex = "女";
    				}
    				//获取多选框的值
    				String slike = "";
    				if(jc1.isSelected()) {
    					slike = "画画";
    				}
    				if(jc2.isSelected()) {
    					slike = "听歌";
    				}
    				//获取下拉框的值
    				String saddress = jco.getSelectedItem()+"";
    				//获取文本域的值
    				String sinfo = jta.getText();
    				//实例化对象赋值
    				Student stu = new Student(sname, ssex, slike, saddress, sinfo);
    				//实例化dao类,获取影响行数
    				int i1 = new Student_dao().add(stu);
    				//判断影响行数
    				if(i1 == 1) {
    					JOptionPane.showMessageDialog(null, "添加成功");
    					//调用showinfo方法
    					i.showinfo("sname", "");
    					//关闭本窗体
    					Add_Ui.this.dispose();
    				}else {
    					JOptionPane.showMessageDialog(null, "添加失败");
    				}
    			}
    		});
    		
    		//给取消按钮内部匿名事件
    		jb2.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				JOptionPane.showMessageDialog(null, "退出添加");
    				//关闭本窗体
    				Add_Ui.this.dispose();
    			}
    		});
    		
    		//显示
    		this.setVisible(true);
    		this.getContentPane().add(jp);
    
    	}
    }
    

     其次是修改窗体

     

    package com.zking.ui;
    
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    import com.zking.dao.Student_dao;
    import com.zking.entity.Student;
    
    
    @SuppressWarnings("serial")
    public class Upd_Ui extends JFrame {
    	public Upd_Ui(Index_Ui i, Student s) {
    		// 创建窗体-标题
    		this.setTitle("修改窗体");
    		// 创建窗体-大小
    		this.setSize(500, 500);
    		// 创建窗体-居中
    		this.setLocationRelativeTo(null);
    		// 创建窗体-关闭
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		// 创建画布
    		JPanel jp = new JPanel();
    		// 网袋布局
    		GridBagLayout gbl = new GridBagLayout();
    		// 约束对象
    		GridBagConstraints gbc = new GridBagConstraints();
    		// 设置网袋约束
    		jp.setLayout(gbl);
    
    		// 创建文本标签-姓名
    		JLabel jl1 = new JLabel("姓名:");
    		// 添加到画布
    		jp.add(jl1);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		gbl.setConstraints(jl1, gbc);
    
    		// 创建文本框
    		JTextField jtf = new JTextField(10);
    		// 添加到画布
    		jp.add(jtf);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 0;
    		gbl.setConstraints(jtf, gbc);
    
    		// 创建文本标签-性别
    		JLabel jl2 = new JLabel("性别:");
    		// 添加到画布
    		jp.add(jl2);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		gbl.setConstraints(jl2, gbc);
    
    		// 单选按钮-男
    		JRadioButton jr1 = new JRadioButton("男");
    		// 添加到画布
    		jp.add(jr1);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 1;
    		gbl.setConstraints(jr1, gbc);
    
    		// 单选按钮-女
    		JRadioButton jr2 = new JRadioButton("女");
    		// 添加到画布
    		jp.add(jr2);
    		// 约束
    		gbc.gridx = 2;
    		gbc.gridy = 1;
    		gbl.setConstraints(jr2, gbc);
    
    		// 单选键设唯一
    		ButtonGroup but = new ButtonGroup();
    		but.add(jr2);
    		but.add(jr1);
    
    		// 创建文本标签-爱好
    		JLabel jl3 = new JLabel("爱好:");
    		// 添加到画布
    		jp.add(jl3);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		gbl.setConstraints(jl3, gbc);
    
    		// 创建多选键-画画
    		JCheckBox jc1 = new JCheckBox("画画");
    		// 添加到画布
    		jp.add(jc1);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 2;
    		gbl.setConstraints(jc1, gbc);
    
    		// 创建多选键-听歌
    		JCheckBox jc2 = new JCheckBox("听歌");
    		// 添加到画布
    		jp.add(jc2);
    		// 约束
    		gbc.gridx = 2;
    		gbc.gridy = 2;
    		gbl.setConstraints(jc2, gbc);
    
    		// 创建文本标签-地址
    		JLabel jl4 = new JLabel("地址:");
    		// 添加到画布
    		jp.add(jl4);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		gbl.setConstraints(jl4, gbc);
    
    		// 创建下拉框
    		JComboBox<String> jco = new JComboBox<>();
    		// 添加到画布
    		jp.add(jco);
    		// 添加元素
    		jco.addItem("湖南");
    		jco.addItem("深圳");
    		jco.addItem("上海");
    		jco.addItem("杭州");
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 3;
    		gbl.setConstraints(jco, gbc);
    
    		// 创建文本标签-简介
    		JLabel jl5 = new JLabel("简介:");
    		// 添加到画布
    		jp.add(jl5);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 4;
    		gbl.setConstraints(jl5, gbc);
    
    		// 创建文本域
    		JTextArea jta = new JTextArea(10, 10);
    		// 创建滚动面板
    		JScrollPane jsc = new JScrollPane(jta);
    		// 添加到画布
    		jp.add(jsc);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 4;
    		gbl.setConstraints(jsc, gbc);
    
    		// 创建按钮-确认
    		JButton jb1 = new JButton("确认");
    		// 添加到画布
    		jp.add(jb1);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 5;
    		gbl.setConstraints(jb1, gbc);
    
    		// 创建按钮-取消
    		JButton jb2 = new JButton("取消");
    		// 添加到画布
    		jp.add(jb2);
    		// 约束
    		gbc.gridx = 2;
    		gbc.gridy = 5;
    		gbl.setConstraints(jb2, gbc);
    		
    		//给文本框赋值
    		jtf.setText(s.getSname());
    		//给单选键赋值
    		if(s.getSsex().equals("男")) {
    			jr1.setSelected(true);
    		}
    		if(s.getSsex().equals("女")) {
    			jr2.setSelected(true);
    		}
    		//给多选键赋值
    		if(s.getSlike().equals("画画")) {
    			jc2.setSelected(true);
    		}
    		if(s.getSlike().equals("听歌")) {
    			jc1.setSelected(true);
    		}
    		//给下拉框赋值
    		jco.setSelectedItem(s.getSaddress());
    		//给文本域赋值
    		jta.setText(s.getSinfo());
    
    		// 给确认按钮内部匿名事件
    		jb1.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				// 获取文本框的值
    				String sname = jtf.getText();
    				// 获取单选键的值
    				String ssex = "";
    				if (jr1.isSelected()) {
    					ssex = "男";
    				}
    				if (jr2.isSelected()) {
    					ssex = "女";
    				}
    				// 获取多选框的值
    				String slike = "";
    				if (jc1.isSelected()) {
    					slike = "画画";
    				}
    				if (jc2.isSelected()) {
    					slike = "听歌";
    				}
    				// 获取下拉框的值
    				String saddress = jco.getSelectedItem() + "";
    				// 获取文本域的值
    				String sinfo = jta.getText();
    				// 实例化对象赋值
    				Student stu = new Student(sname, ssex, slike, saddress, sinfo);
    				// 实例化dao类,获取影响行数
    				int i1 = new Student_dao().update(s.getSid(), stu);
    				// 判断影响行数
    				if (i1 == 1) {
    					JOptionPane.showMessageDialog(null, "修改成功");
    					// 调用showinfo方法
    					i.showinfo("sname", "");
    					// 关闭本窗体
    					Upd_Ui.this.dispose();
    				} else {
    					JOptionPane.showMessageDialog(null, "修改失败");
    				}
    			}
    		});
    
    		// 给取消按钮内部匿名事件
    		jb2.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				JOptionPane.showMessageDialog(null, "退出修改");
    				// 关闭本窗体
    				Upd_Ui.this.dispose();
    			}
    		});
    
    		// 显示
    		this.setVisible(true);
    		this.getContentPane().add(jp);
    	}
    }
    

     删除是没有窗体的,删除是获取到表格的值,点击删除按钮直接删除所有接下来是详情窗体

     当我没有点击一个学生删除时是要弹窗的

     当我选择了要删除的学生时也是要提示的

     

     

     详情窗体设置了不可对内容进行编辑

     

    package com.zking.ui;
    
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    import com.zking.entity.Student;
    
    
    @SuppressWarnings("serial")
    public class Xq_Ui extends JFrame {
    	public Xq_Ui(Student s) {
    		// 创建窗体-标题
    		this.setTitle("修改窗体");
    		// 创建窗体-大小
    		this.setSize(500, 500);
    		// 创建窗体-居中
    		this.setLocationRelativeTo(null);
    		// 创建窗体-关闭
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		// 创建画布
    		JPanel jp = new JPanel();
    		// 网袋布局
    		GridBagLayout gbl = new GridBagLayout();
    		// 约束对象
    		GridBagConstraints gbc = new GridBagConstraints();
    		// 设置网袋约束
    		jp.setLayout(gbl);
    
    		// 创建文本标签-姓名
    		JLabel jl1 = new JLabel("姓名:");
    		// 添加到画布
    		jp.add(jl1);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		gbl.setConstraints(jl1, gbc);
    
    		// 创建文本框
    		JTextField jtf = new JTextField(10);
    		// 添加到画布
    		jp.add(jtf);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 0;
    		gbl.setConstraints(jtf, gbc);
    		
    		//文本框禁止编辑
    		jtf.setEditable(false);
    
    		// 创建文本标签-性别
    		JLabel jl2 = new JLabel("性别:");
    		// 添加到画布
    		jp.add(jl2);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		gbl.setConstraints(jl2, gbc);
    
    		// 单选按钮-男
    		JRadioButton jr1 = new JRadioButton("男");
    		// 添加到画布
    		jp.add(jr1);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 1;
    		gbl.setConstraints(jr1, gbc);
    
    		// 单选按钮-女
    		JRadioButton jr2 = new JRadioButton("女");
    		// 添加到画布
    		jp.add(jr2);
    		// 约束
    		gbc.gridx = 2;
    		gbc.gridy = 1;
    		gbl.setConstraints(jr2, gbc);
    		
    		//给多选键禁止编辑
    		jr1.setEnabled(false);
    		jr2.setEnabled(false);
    
    		// 单选键设唯一
    		ButtonGroup but = new ButtonGroup();
    		but.add(jr2);
    		but.add(jr1);
    
    		// 创建文本标签-爱好
    		JLabel jl3 = new JLabel("爱好:");
    		// 添加到画布
    		jp.add(jl3);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		gbl.setConstraints(jl3, gbc);
    
    		// 创建多选键-画画
    		JCheckBox jc1 = new JCheckBox("画画");
    		// 添加到画布
    		jp.add(jc1);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 2;
    		gbl.setConstraints(jc1, gbc);
    
    		// 创建多选键-听歌
    		JCheckBox jc2 = new JCheckBox("听歌");
    		// 添加到画布
    		jp.add(jc2);
    		// 约束
    		gbc.gridx = 2;
    		gbc.gridy = 2;
    		gbl.setConstraints(jc2, gbc);
    		
    		//多选键禁止编辑
    		jc1.setEnabled(false);
    		jc2.setEnabled(false);
    
    		// 创建文本标签-地址
    		JLabel jl4 = new JLabel("地址:");
    		// 添加到画布
    		jp.add(jl4);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		gbl.setConstraints(jl4, gbc);
    
    		// 创建下拉框
    		JComboBox<String> jco = new JComboBox<>();
    		// 添加到画布
    		jp.add(jco);
    		// 添加元素
    		jco.addItem("湖南");
    		jco.addItem("深圳");
    		jco.addItem("上海");
    		jco.addItem("杭州");
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 3;
    		gbl.setConstraints(jco, gbc);
    		
    		//下拉框禁止编辑
    		jco.setEnabled(false);
    		
    		// 创建文本标签-简介
    		JLabel jl5 = new JLabel("简介:");
    		// 添加到画布
    		jp.add(jl5);
    		// 约束
    		gbc.gridx = 0;
    		gbc.gridy = 4;
    		gbl.setConstraints(jl5, gbc);
    
    		// 创建文本域
    		JTextArea jta = new JTextArea(10, 10);
    		// 创建滚动面板
    		JScrollPane jsc = new JScrollPane(jta);
    		// 添加到画布
    		jp.add(jsc);
    		// 约束
    		gbc.gridx = 1;
    		gbc.gridy = 4;
    		gbl.setConstraints(jsc, gbc);
    		
    		//文本域禁止编辑
    		jta.setEditable(false);
    
    		// 创建按钮-退出
    		JButton jb2 = new JButton("退出");
    		// 添加到画布
    		jp.add(jb2);
    		// 约束
    		gbc.gridx = 2;
    		gbc.gridy = 5;
    		gbl.setConstraints(jb2, gbc);
    
    		// 给文本框赋值
    		jtf.setText(s.getSname());
    		// 给单选键赋值
    		if (s.getSsex().equals("男")) {
    			jr1.setSelected(true);
    		}
    		if (s.getSsex().equals("女")) {
    			jr2.setSelected(true);
    		}
    		// 给多选键赋值
    		if (s.getSlike().equals("画画")) {
    			jc2.setSelected(true);
    		}
    		if (s.getSlike().equals("听歌")) {
    			jc1.setSelected(true);
    		}
    		// 给下拉框赋值
    		jco.setSelectedItem(s.getSaddress());
    		// 给文本域赋值
    		jta.setText(s.getSinfo());
    
    		// 给退出按钮内部匿名事件
    		jb2.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				JOptionPane.showMessageDialog(null, "退出详情");
    				// 关闭本窗体
    				Xq_Ui.this.dispose();
    			}
    		});
    
    		// 显示
    		this.setVisible(true);
    		this.getContentPane().add(jp);
    	}
    }
    

    OK,所有的内容展示完了,如果遇到什么问题可以评论区留言或者私信我,我在看到的情况下尽自己最大的知识度去为大家解答疑惑。

    展开全文
  • 我这钻牛角的学习方法什么时候能改呢,一个劲的抠细节,我是个细节控吗? 总结一下这两天出现的问题,算是记录解决过程吧,最后争取再写一篇分类明确的总结。 第一个问题:用户定义类型未定义。 写了登录窗体...

    我这钻牛角的学习方法什么时候能改呢,一个劲的抠细节,我是个细节控吗?

    总结一下这两天出现的问题,算是记录解决过程吧,最后争取再写一篇分类明确的总结。

    第一个问题:用户定义类型未定义。

    写了登录窗体之后,测试看看能不能用,就出现了这个错误弹窗,仔细看上面是ADO这里的问题,是引用-工程出现了问题,未引用相关库文件导致产生此类错误,查了一下说“是在代码中引用了相关控件的方法,但是之前并未引用对应的库函数将导致这类错误。对此我们需要首先加入对控制的支持库,然后方可在编辑中引用对应控件。”对比发现少了两个引用,没有Microsoft ActiveX Data Objects2.6 Library ,ADO对象不能用。这里的引用就是“允许您选择另外的应用程序的对象,通过设置对那个应用程序对象库的引用您可以在您的代码中使用它”(来自MSDN),“工程引用”可以调用其它软件的函数,实质就是传递指针。

    第二个问题,主窗体下面的状态栏设置

    上图框住的实际是一个状态栏控件(sbstatusbar),添加方法是:右击选项卡(也就是控件工具箱)->部件->microsoftwindows common ctrols 6.0添加。

    接着如何显示时间和日期,并进行分栏呢,右键选择“properties”,index是把状态栏分成几部分,然后分别对每部分进行设置。

    “StatusBar 控件由 Panel 对象组成,每一个 Panel 对象能包含文本和/或图片。控制个别面板的外观属性包括 Width、Alignment(文本和图片的)和 Bevel。此外,能使用 Style 属性七个值中的一个自动地显示公共数据,诸如日期、时间和键盘状态等。 在设计时,在 StatusBar 控件的属性页的“窗格”选项卡中设置的值能建立面板并定制它们的外观。在运行时,能重新配置 Panel 对象以反映不同的功能,这些功能取决于应用程序的状态。关于 Panel 对象的属性、事件和方法的详细信息,请参阅“Panel 对象和 Panels 集合”的主题。 ”

    第三个问题:启动主窗体出现问题

    是因为窗体名称写错了,实例化窗体。

    第四个问题:出在了odbc。

    链接名字出错,因为ODBC配置的时候就不是很清楚,所以名字也记错了,后面又回顾了一下前期ODBC的配置。

    用户名,密码是链接数据库的用户名密码。

    第五个问题:ODBC的配置和附加数据库

    再敲代码之前进行了数据库的创建,这里面是直接附加了一个Sql-sever(student.mdf)

    接下来配置ODBC

    到sql-sever里看下服务器名字,蓝色部分为服务器名字。

    可以点连接-数据库引擎,复制名称。

    最后放一张手画的登录窗口的流程图,不能算流程图,因为用流程图画不出来,就是个逻辑判断图吧。(这图画的有点扎,不是渣,是扎)

     

    曲士不可以语于道者 束于教。

    展开全文
  • 3、课程信息模块课程信息模块主要用于管理课程信息,包括课程号、课程、学分和学时,能对课程信息进行添加、删除和修改等操作。4、成绩信息模块成绩信息模块主要用于管理学生成绩的录入及查询。数据

    本套学生成绩系统主要包括以下四个能模功块,具体功能要求如下:

    1、登录模块

    登录模块提供用户登录界面,用户输入正确的用户名和密码后,则可进入系统主窗口(即导航页面),从而可以选择进入相应的子系统。

    2、学生信息模块

    学生信息模块主要用户管理学生的基本信息,包括学号、姓名、性别、年龄和所在系,能对学生信息进行添加、删除和修改等操作。

    3、课程信息模块

    课程信息模块主要用于管理课程信息,包括课程号、课程名、学分和学时,能对课程信息进行添加、删除和修改等操作。

    4、成绩信息模块

    成绩信息模块主要用于管理学生成绩的录入及查询。

    数据库设计:

    基于SQL Server2008数据库管理系统构建数据库SelectCourse,根据作业题目要求共设计实现了四张表,分别是系统用户表tbl_User、学生信息表tbl_Student、课程信息表tbl_Course以及成绩信息表tbl_SC,其表结构如下。

    1、系统用户表

    系统用户表“tbl_User”用于存放系统用户的相关数据。其结构如表1-1所示。

    表1-1 系统用户表

    列名

    说明

    数据类型

    约束

    userName

    用户名

    字符串,长度为16

    主键

    userPassword

    用户密码

    字符串,长度为16

    非空

    userPurview

    权限

    字符串,长度为16

    取值为“超级用户”、 “一般用户”

    2、学生信息表

    学生信息表“tbl_Student”结构如表1-2所示。

    表1-2 学生信息表

    列名

    说明

    数据类型

    约束

    Sno

    学号

    字符串,长度为10

    主键

    Sname

    姓名

    字符串,长度为8

    非空

    Ssex

    性别

    字符串,长度为2

    Sage

    年龄

    整数

    -

    Sdept

    所在系

    字符串,长度为20

    -

    3、课程信息表

    课程信息表“tbl_Course”结构如表1-3所示。

    表1-3 课程信息表

    列名

    说明

    数据类型

    约束

    Cno

    课程号

    字符串,长度为10

    主键

    Cname

    课程名

    字符串,长度为20

    非空

    Ccredit

    学分

    整数

    -

    Csemester

    学期

    整数

    -

    Cperiod

    学时

    整数

    -

    4、成绩信息表

    成绩信息表“tbl_SC”结构如表1-4所示。

    表1-4 成绩信息表

    列名

    说明

    数据类型

    约束

    Sno

    学号

    字符串,长度为10

    主键

    Cno

    课程号

    字符串,长度为10

    主键

    grade

    成绩

    整数

    公共类设计:

    DataBase:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Data;

    using System.Data.SqlClient;

    using System.Windows.Forms;

    namespace WindowsFormsApplication4

    {

        public class DataBase

        {

            SqlConnection dataConnection = new SqlConnection();

            SqlDataAdapter dataAdapter;

            DataSet dataSet;

            SqlCommand command;

            static string connstr ="server=.;database=SelectCourse; integrated security=true;";

            public DataSet GetDataFormDB(string sqlStr)

            {

                try

                {

                    dataConnection.ConnectionString = connstr;

                    dataConnection.Open();

                    dataAdapter = new SqlDataAdapter(sqlStr, connstr);

                    dataSet = new DataSet();

                    dataAdapter.Fill(dataSet);

                    dataConnection.Close();

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                    dataConnection.Close();

                }

                if (dataSet.Tables[0].Rows.Count != 0)

                {

                    return dataSet;

                }

                else

                {

                    return null;

                }

            }

            public bool UpdateDB(string sqlStr)

            {

                try

                {

                    dataConnection.ConnectionString = connstr;

                    dataConnection.Open();

                    command = new SqlCommand(sqlStr, dataConnection);

                    command.ExecuteNonQuery();

                    dataConnection.Close();

                    return true;

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                    return false;

                }

            }

        }

    }

     ClassShared:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    namespace WindowsFormsApplication4

    {

        public class ClassShared

        {

            public static string[] userInfo = new string[2];

        }

        public class LoginUser

        {

            public static string _userName;

            public static string _userPassword;

            public static string _userPurview;

        }

    }

    系统窗体设计及功能代码编写:

    登陆窗体代码实现:

    namespace WindowsFormsApplication4

    {

    //ComboBox1=txtUserName

        //ComboBox2=txtUserPassword

        //Button1=btnOk

        //Button2=btnClose

        public partial class frmlogin : Form

        {

            public frmlogin()

            {

                InitializeComponent();

            }

            private void btnOk_Click(object sender, EventArgs e)//点击确定后发生事件

            {

                try

                {

                    DataSet ds = new DataSet();

                    DataBase db = new DataBase();

                    string sqlStr = "Select userPassword,userPurview from tbl_User where UserName = '" + txtUserName.Text.Trim() + "'";

                    ds = db.GetDataFormDB(sqlStr);

                    if (ds.Tables[0].Rows[0].ItemArray[0].ToString() == txtUserPassword.Text.Trim())

                    {

                        frmMain ob_FrmMain = new frmMain();

                        ClassShared.userInfo[0] = txtUserName.Text.Trim();

                        ClassShared.userInfo[1]=ds.Tables[0].Rows[0].ItemArray[1].ToString();

                        ob_FrmMain.Show();

                        this.Hide();

                    }

                    else

                    {

                        MessageBox.Show("用户名或密码错误,请重新输入!");

                        txtUserName.Text = "";

                        txtUserPassword.Text = "";

                        txtUserName.Focus();

                    }

                }

                catch

                {

                    MessageBox.Show("用户名或者密码错误", "错误");

                }

            }

            private void btnClose_Click(object sender, EventArgs e)//  点击取消后事件

            {

                Application.Exit();

            }

        }

    }

    主窗体界面代码实现:

     

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    using System.Data.SqlClient;

    namespace WindowsFormsApplication4

    {   //button1=btnStudent

        //button2=btnCourse

        //button3=btnSC

        //button4=btnClose

        public partial class frmMain : Form

        {

            public frmMain()

            {

                InitializeComponent();

            }

            private void frmMain_Load(object sender, EventArgs e)

            {

                //将“userInfo[]”中保存的用户登录信息作为标题显示在窗体的标题栏中

                this.Text = ClassShared.userInfo[0] + "--" + ClassShared.userInfo[1];

                if (ClassShared.userInfo[1] == "一般用户")

                {

                    btnStudent.Enabled = false;

                    btnCourse.Enabled = false;

                }

                else

                {

                    btnStudent.Enabled = true;

                    btnCourse.Enabled = true;

                }

            }

            private void btnClose_Click(object sender, EventArgs e)//退出系统

            {

                Application.Exit();

            }

            private void btnStudent_Click(object sender, EventArgs e)//进入学生管理系统

            {

                frmStudent ob_FrmStudent = new frmStudent();

                ob_FrmStudent.Show();

            }

            private void btnCourse_Click(object sender, EventArgs e)//进入课程信息管理

            {

                frmCourse ob_FrmCourse = new frmCourse();

                ob_FrmCourse.Show();

            }

            private void btnSc_Click(object sender, EventArgs e)//进入成绩系信息管理

            {

                frmSC ob_FrmSC = new frmSC();

                ob_FrmSC.Show();

            }

        }

    }    

    学生信息管理代码实现:

     

     

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.SqlClient;

    namespace WindowsFormsApplication4

    {

            //TextBox1=SNumber

            //TextBox2=SName

            //TextBox3=SAge

            //TextBox4=SYuanXi

            //ComboBox1=SSex

            //Button1=btnAdd

            //Button2=btnUpadate

            //Button3=btnDelete

            //Button4=btnClose

        public partial class frmStudent : Form

        {

            

            void objOpen()

            {

                SNumber.Enabled = true;

                SName.Enabled = true;

                SAge.Enabled = true;

                SSex.Enabled = true;

                SYuanXi.Enabled = true;

                SNumber.Focus();

            }

            void objClose()

            {

                SNumber.Enabled = false;

                SName.Enabled = false;

                SAge.Enabled = false;

                SSex.Enabled = false;

                SYuanXi.Enabled = false;

            }

            void Clear()

            {

                SNumber.Text = "";

                SName.Text = "";

                SAge.Text = "";

                SSex.SelectedIndex = -1;

                SYuanXi.Text = "";

            }

            void SetHeaderText()//给每列标注列名

            {

                dgrdvStudent.Columns[0].HeaderText = "学号";

                dgrdvStudent.Columns[1].HeaderText = "姓名";

                dgrdvStudent.Columns[2].HeaderText = "性别";

                dgrdvStudent.Columns[3].HeaderText = "年龄";

                dgrdvStudent.Columns[4].HeaderText = "所在系";

            }

            void RefreshData()//用于刷新数据的方法

            {

                string comStr;

                DataBase db = new DataBase();

                DataSet ds = new DataSet();

                comStr = "select * from tbl_Student";

                ds = db.GetDataFormDB(comStr);

                if (ds == null)

                {

                    MessageBox.Show("没有任何学生记录!");

                }

                else

                {

                    dgrdvStudent.DataSource = ds.Tables[0];

                    SetHeaderText();

                }

            }

            public frmStudent()

            {

                InitializeComponent();

            }

            private void frmStudent_Load(object sender, EventArgs e)

            {

                //添加SSex的选项

                SSex.Items.Add("男");

                SSex.Items.Add("女");

                objClose();

                RefreshData();

            }

            private void dgrdvStudent_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)

            {

                int n = this.dgrdvStudent.CurrentCell.RowIndex;

                SNumber.Text = this.dgrdvStudent[0, n].Value.ToString();

                SName.Text = this.dgrdvStudent[1, n].Value.ToString();

                SSex.SelectedItem = this.dgrdvStudent[2, n].Value.ToString();

                SAge.Text = this.dgrdvStudent[3, n].Value.ToString();

                SYuanXi.Text = this.dgrdvStudent[4, n].Value.ToString();

            }

            //用户单击【添加】按钮,则窗体上方的文本框和组合框都返回可用状态,同时该按钮上的文本变成【确定】,填写完要添加的学生信息后,单击【确定】按钮可将学生信息添加到数据库中,最后该按钮上的文本变回【添加】

            private void btnAdd_Click(object sender, EventArgs e)

            {

                try

                {

                    if (btnAdd.Text.Trim() == "添加")

                    {

                        btnAdd.Text = "确定";

                        objOpen();

                        Clear();

                        btnUpadate.Enabled = false;

                        btnDelete.Enabled = false;

                        btnClose.Enabled = false;

                        dgrdvStudent.Enabled = false;

                    }

                    else

                    {

                        btnAdd.Text = "添加";

                        if (SNumber.Text.Trim() != null && SName.Text.Trim() != null)

                        {

                            string sqlStr;

                            sqlStr = "insert into tbl_Student values ('" + S Number.Text.Trim() + "','" + SName.Text.Trim() + "','" + SSex.Text.Trim() + "'," + SAge.Text.Trim() + ",'" + SYuanXi.Text.Trim() + "')";

                            DataBase db = new DataBase();

                            bool b;

                            b = db.UpdateDB(sqlStr);

                            if (b == true)

                            {

                                if (MessageBox.Show("添加成功!继续添加吗?", "添加", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                                {

                                    Clear();

                                    objOpen();

                                    btnAdd.Text = "确定";

                                }

                                else

                                {

                                    objClose();

                                    btnClose.Enabled = true;

                                    btnDelete.Enabled = true;

                                    btnUpadate.Enabled = true;

                                    dgrdvStudent.Enabled = true;

                                }

                            }

                            else

                            {

                                return;

                            }

                        }

                        else

                        {

                            MessageBox.Show("学号与姓名不能为空!");

                            SNumber.Focus();

                            btnAdd.Text = "确定";

                        }

                        RefreshData();

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                    Clear();

                    objClose();

                    dgrdvStudent.Enabled = false;

                }

            }

            //修改学生记录

            private void btnUpadate_Click(object sender, EventArgs e)

            {

                try

                {

                    if (btnUpadate.Text.Trim() == "修改")

                    {

                        btnUpadate.Text = "确定";

                        btnAdd.Enabled = false;

                        btnDelete.Enabled = false;

                        btnClose.Enabled = false;

                        SName.Enabled = true;

                        SAge.Enabled = true;

                        SSex.Enabled = true;

                        SYuanXi.Enabled = true;

                        SName.Focus();

                    }

                    else

                    {

                        btnUpadate.Text = "修改";

                        btnAdd.Enabled = true;

                        btnDelete.Enabled = true;

                        btnClose.Enabled = true;

                        objClose();

                        string sqlStr;

                        sqlStr = "Update tbl_Student set Sname='" + SName.Text.Trim() + "',Ssex='" + SSex.Text.Trim() + "',Sage='" + SAge.Text.Trim() + "',Sdept='" + SYuanXi.Text.Trim() + "' where Sno='" + SNumber.Text.Trim() + "'";

                        DataBase db = new DataBase();

                        db.UpdateDB(sqlStr);

                        RefreshData();

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

            }

            //删除学生记录

            private void btnDelete_Click(object sender, EventArgs e)

            {

                try

                {

                    if (SNumber.Text.Trim() != "")

                    {

                        if (MessageBox.Show("确定要删除学生吗?", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                        {

                            string sqlStr;

                            sqlStr = "delete from tbl_Student where Sno='" + SNumber.Text.Trim() + "'";

                            DataBase db = new DataBase();

                            db.UpdateDB(sqlStr);

                            RefreshData();

                        }

                    }

                    else

                    {

                        MessageBox.Show("没有可删除的记录!", "提示");

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

            }

            //关闭系统

            private void btnClose_Click(object sender, EventArgs e)

            {

                this.Hide();

            }

        }

    }

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.SqlClient;

    课程信息管理代码实现:

     

    namespace WindowsFormsApplication4

    {

        //textbox1=CourseNo

        //textbox2=CourseName

        //textbox3=CourseCredit

        //textbox4=CoursePeriod

        //combox=CourseSemester

        //button1=btnAdd

        //button2=btnUpdate

        //button3=btnDelete

        //button4=btnClose

        

        public partial class frmCourse : Form

        {

            public frmCourse()

            {

                InitializeComponent();

            }

            void objOpen()

            {

                CourseNo.Enabled = true;

                CourseName.Enabled = true;

                CourseCredit.Enabled = true;

                CourseSemester.Enabled = true;

                CoursePeriod.Enabled = true;

                CourseNo.Focus();

            }

            void objClose()

            {

                CourseNo.Enabled = false;

                CourseName.Enabled = false;

                CourseCredit.Enabled = false;

                CourseSemester.Enabled = false;

                CoursePeriod.Enabled = false;

            }

            void Clear()

            {

                CourseNo.Text = "";

                CourseName.Text = "";

                CourseCredit.Text = "";

                CourseSemester.Text = "";

                CoursePeriod.Text = "";

            }

            //添加每列的标题

            void SetHeaderText()

            {

                dgrdvCouser.Columns[0].HeaderText = "课程编号";

                dgrdvCouser.Columns[1].HeaderText = "课程名称";

                dgrdvCouser.Columns[2].HeaderText = "课程学分";

                dgrdvCouser.Columns[3].HeaderText = "开课学期";

                dgrdvCouser.Columns[4].HeaderText = "总学时";

            }

            //更新数据

            void RefreshData()

            {

                string comStr;

                DataBase db = new DataBase();

                DataSet ds = new DataSet();

                comStr = "select * from tbl_Course";

                ds = db.GetDataFormDB(comStr);

                if (ds == null)

                {

                    MessageBox.Show("无法找到该课程!");

                }

                else

                {

                    dgrdvCouser.DataSource = ds.Tables[0];

                    SetHeaderText();

                }

            }

            private void Form4_Load(object sender, EventArgs e)

            {

                objClose();

                RefreshData();

               

            }

            //添加学期

            private void btnAdd_Click(object sender, EventArgs e)

            {

                try

                {

                    if (btnAdd.Text.Trim() == "添加")

                    {

                        btnAdd.Text = "确定";

                        objOpen();

                        Clear();

                        btnUpdate.Enabled = false;

                        btnDelete.Enabled = false;

                        btnClose.Enabled = false;

                        dgrdvCouser.Enabled = false;

                    }

                    else

                    {

                        btnAdd.Text = "添加";

                        if (CourseNo.Text.Trim() != null && CourseName.Text.Trim() != null)

                        {

                            string sqlStr;

                            sqlStr = "insert into tbl_Course values ('" + CourseNo.Text.Trim() + "','" + CourseName.Text.Trim() + "','" + CourseSemester.Text.Trim() + "','" + CourseCredit.Text.Trim() + "','" + CoursePeriod.Text.Trim() + "')";

                            DataBase db = new DataBase();

                            bool b;

                            b = db.UpdateDB(sqlStr);

                            if (b == true)

                            {

                                if (MessageBox.Show("添加成功!继续添加吗?", "添加", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                                {

                                    Clear();

                                    objOpen();

                                    btnAdd.Text = "确定";

                                }

                                else

                                {

                                    objClose();

                                    btnClose.Enabled = true;

                                    btnDelete.Enabled = true;

                                    btnUpdate.Enabled = true;

                                    dgrdvCouser.Enabled = true;

                                }

                            }

                            else

                            {

                                return;

                            }

                        }

                        else

                        {

                            MessageBox.Show("学号与姓名不能为空!");

                            CourseNo.Focus();

                            btnAdd.Text = "确定";

                        }

                        RefreshData();

                        CourseNo.SelectAll();

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                    Clear();

                    objClose();

                    dgrdvCouser.Enabled = false;

                }

            }

            private void btnUpdate_Click(object sender, EventArgs e)

            {

                try

                {

                    if (btnUpdate.Text.Trim() == "修改")

                    {

                        btnUpdate.Text = "确定";

                        btnAdd.Enabled = false;

                        btnDelete.Enabled = false;

                        btnClose.Enabled = false;

                        CourseName.Enabled = true;

                        CourseCredit.Enabled = true;

                        CourseSemester.Enabled = true;

                        CoursePeriod.Enabled = true;

                        CourseName.Focus();

                    }

                    else

                    {

                        btnUpdate.Text = "修改";

                        btnAdd.Enabled = true;

                        btnDelete.Enabled = true;

                        btnClose.Enabled = true;

                        objClose();

                        string sqlStr;

                        sqlStr = "Update tbl_Course set Cname='" + CourseName.Text.Trim() + "',Csemester='" + CourseSemester.Text.Trim() + "',Ccredit='" + CourseCredit.Text.Trim() + "',Cperiod='" + CoursePeriod.Text.Trim() + "' where Cno='" + CourseNo.Text.Trim() + "'";

                        DataBase db = new DataBase();

                        db.UpdateDB(sqlStr);

                        RefreshData();

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

            }

            private void btnDelete_Click(object sender, EventArgs e)

            {

                try

                {

                    if (CourseNo.Text.Trim() != "")

                    {

                        if (MessageBox.Show("确定要删除课程吗?", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                        {

                            string sqlStr;

                            sqlStr = "delete from tbl_Course where Cno='" + CourseNo.Text.Trim() + "'";

                            DataBase db = new DataBase();

                            db.UpdateDB(sqlStr);

                            RefreshData();

                        }

                    }

                    else

                    {

                        MessageBox.Show("无可删除的记录!", "提示");

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

            }

            private void button4_Click(object sender, EventArgs e)

            {

                this.Hide();

            }

            private void dgrdvCouser_CellContentClick(object sender, DataGridViewCellEventArgs e)

            {

                int n = this.dgrdvCouser.CurrentCell.RowIndex;

                CourseNo.Text = this.dgrdvCouser[0, n].Value.ToString();

                CourseName.Text = this.dgrdvCouser[1, n].Value.ToString();

                CourseSemester.Text= this.dgrdvCouser[2, n].Value.ToString();

                CourseCredit.Text = this.dgrdvCouser[3, n].Value.ToString();

                CoursePeriod.Text = this.dgrdvCouser[4, n].Value.ToString();

            }

        }

    }

    成绩信息管理代码实现:

     

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.SqlClient;

    namespace WindowsFormsApplication4

    {

          //comboBox1=SelStudent

            //comboBox2=SelCourse

            //conboBox3=Selcondition

            //TextBox1=Grade

            //TextBox2=txtSelText

            //Button1=btnGradeIn

            //Button2=btnSelect

            //Button3=btnSelAll

            //Button4=btnClose

        public partial class frmSC : Form

        {

            string selectcondition;

            public frmSC()

            {

                InitializeComponent();

            }

            //给每一列添加列名

            void SetHeaderText()

            {

                dgrdvResult.Columns[0].HeaderText = "学号";

                dgrdvResult.Columns[1].HeaderText = "姓名";

                dgrdvResult.Columns[2].HeaderText = "课程号";

                dgrdvResult.Columns[3].HeaderText = "课程名";

                dgrdvResult.Columns[4].HeaderText = "成绩";

            }

           

            private void frmSC_Load(object sender, EventArgs e)

            {

                Selcondition.Items.Add("学生学号");

                Selcondition.Items.Add("课程编号");

                DataBase dbStudent = new DataBase();

                DataSet dataSetStudent = new DataSet();

                string sqlStr = "select Sno,Sname from tbl_Student";

                dataSetStudent = dbStudent.GetDataFormDB(sqlStr);

                if (dataSetStudent.Tables[0].Rows.Count > 0)

                {

                    SelStudent.Items.Clear();

                    for (int i = 0; i < dataSetStudent.Tables[0].Rows.Count; i++)

                    {

                        SelStudent.Items.Add(dataSetStudent.Tables[0].Rows[i].ItemArray[0].ToString() + "--" + dataSetStudent.Tables[0].Rows[i].ItemArray[1].ToString());

                    }

                }

                DataBase dbCourse = new DataBase();

                DataSet dataSetCourse = new DataSet();

                sqlStr = "select Cno,Cname from tbl_Course";

                dataSetCourse = dbCourse.GetDataFormDB(sqlStr);

                if (dataSetCourse.Tables[0].Rows.Count > 0)

                {

                    SelCourse.Items.Clear();

                    for (int i = 0; i < dataSetCourse.Tables[0].Rows.Count; i++)

                    {

                        SelCourse.Items.Add(dataSetCourse.Tables[0].Rows[i].ItemArray[0].ToString() + "--" + dataSetCourse.Tables[0].Rows[i].ItemArray[1].ToString());

                    }

                }

            }

            //查询事件按键

            private void btnSelect_Click(object sender, EventArgs e)

            {

                try

                {

                    if (Selcondition.SelectedIndex == -1 || txtSelText.Text == "")

                    {

                        MessageBox.Show("请选择查询条件并输入查询值!");

                    }

                    else

                    {

                        string sqlStr = "SELECT tbl_SC.Sno,tbl_Student.Sname,tbl_SC.Cno,tbl_Course.Cname,tbl_SC.grade FROM tbl_Student,tbl_Course,tbl_SC where tbl_Course.Cno=tbl_SC.Cno and tbl_Student.Sno=tbl_SC.Sno and " + selectcondition + "='" + txtSelText.Text.Trim() + "'";

                        DataBase db = new DataBase();

                        DataSet dataSetSelect = new DataSet();

                        dataSetSelect = db.GetDataFormDB(sqlStr);

                        if (dataSetSelect.Tables[0].Rows.Count == 0)

                        {

                            MessageBox.Show("没有符合条件的成绩记录!");

                        }

                        else

                        {

                            dgrdvResult.DataSource = dataSetSelect.Tables[0];

                            SetHeaderText();

                        }

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

            }

     private void cmbSelcondition_SelectedIndexChanged(object sender, EventArgs e)

            {

                switch (Selcondition.SelectedIndex)

                {

                    case 0:

                        selectcondition = "tbl_SC.Sno";

                        break;

                    case 1:

                        selectcondition = "tbl_SC.Cno";

                        break;

                }

            }

            //学生成绩录入

            private void btnGradeIn_Click(object sender, EventArgs e)

            {

                if (SelStudent.SelectedIndex >= 0 && SelCourse.SelectedIndex >= 0)

                {

                    string sqlStr = "insert into tbl_SC values('" +SelStudent.Text.Trim().Substring(0, 4) + "','" + SelCourse.Text.Trim().Substring(0, 4) + "'," + Grade.Text.Trim() + ")";

                    DataBase db = new DataBase();

                    bool b = db.UpdateDB(sqlStr);

                    if (b == true)

                    {

                        MessageBox.Show("成绩录入成功!", "学生成绩录入");

                    }

                    else

                    {

                        MessageBox.Show("该生成绩已录入!", "学生成绩录入", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }

                }

                else

                {

                    MessageBox.Show("请先选择学生和课程!");

                }

                SelStudent.SelectedIndex = -1;

                SelCourse.SelectedIndex = -1;

                Grade.Text = "";

            }

            //显示全部选课信息

            private void btnSelAll_Click(object sender, EventArgs e)

            {

                string sqlStr = "SELECT tbl_SC.Sno,tbl_Student.Sname,tbl_SC.Cno,tbl_Course.Cname,tbl_SC.grade FROM tbl_Student,tbl_Course,tbl_SC where tbl_Course.Cno = tbl_SC.Cno and tbl_Student.Sno = tbl_SC.Sno";

                DataBase db = new DataBase();

                DataSet dataSetSelect = new DataSet();

                dataSetSelect = db.GetDataFormDB(sqlStr);

                if (dataSetSelect == null)

                {

                    MessageBox.Show("没有符合条件的成绩记录!");

                }

                else

                {

                    dgrdvResult.DataSource = dataSetSelect.Tables[0];

                    SetHeaderText();

                }

            }

            //退出系统

            private void btnClose_Click(object sender, EventArgs e)

            {

                this.Hide();

            }

        }

    }

    展开全文
  • 前言在上一节Python GUI项目实战(三)实现信息查询功能 我们实现了在主窗体中通过单条件查询或者组合查询进行学生信息...这一节我们将搭建一个显示学生详细信息的明细窗体,显示该学生的所有信息,只要双击表格中的某...
  • Winform之学生信息管理系统各种子窗体()

    万次阅读 多人点赞 2015-05-06 20:51:25
    对于登录窗体的设计还是存在着一些弊端,那就是需要登录学生信息管理系统时如果输入的数据出错不必一个个删除,就需要在窗体上再添加一个清空写入数据的button控件,将其属性Text改重置。还有一个与登录窗口设计的...
  • AC#程序/项目这是我作为计算机科学系学生时的一个简单的C#项目该程序是第三学期的面向对象应用程序开发类创建的,并且是通过该类所必需的一些C#程序之一项目说明Windows窗体应用程序实现了一个简单的游戏,称为...
  • 必须至少SQL Server实例指定一个系统管理员。若要添加用以运行SQL Server安装程序账户,则要单击“添加当前用户”按钮。若要向系统管理员列表中添加账户或从中删除账户,则单击“添加…”或“删除…”按钮,然后...
  • 学生管理系统 源代码

    2019-01-07 21:43:37
    (2)在数据库名为SCOREINFO中,创建数据表名为course,表结构如下: (3)当单击【查询】时,直接在窗体的dataGridView2控件中显示数据表的所有记录; (4)当选中DataGridView控件中的某行记录时...
  • 8.4创建

    2022-07-15 07:11:21
    目录 1.创建独立宏 2.创建子宏 3.创建带条件的宏
  • C#学生信息管理系统

    千次阅读 热门讨论 2020-02-29 08:59:21
    题目:学生信息管理系统 ... 某学校要实现班级学生信息管理,要求使用.NET WinForms技术完成一个班级学生信息管理系统的开发,其中保存在SQL Server 2008数据库中的学生信息如下: 数据库 studen...
  • c#编写简单的学生管理系统

    千次阅读 多人点赞 2019-02-22 19:39:10
    前言:这个是老师让我们使用C#做一个简单的学生管理信息系统,老师明确不让我们使用数据库,因为我们没学,让我们保存在文本中,所有我把信息保存在了文本中,每一行代码一个学生信息,中间使用分隔符进行分隔。 一、首先...
  • 今天给大家更新一个综合实例,学生成绩管理系统。从需求分析、窗体应用程序的编写、运行结果来阐述整个过程 需求分析 首先先要进行需求分析,需求分析就是想清楚你写的窗体应用具体要实现哪些功能。最好把它用表格的...
  • 学生类package com.lanxi.demo1_3;public class Student {private String name;private String sex;private int age;@Override//重写toString方法public String toString() {return "Student [name=" + name + ", ...
  • 添加一个显示结果的子窗体 5.设置组合框更新后事件 1.创建交互式动态查询窗体 参数查询是一种交互式动态查询,在输入不同的参数后可以获得不同的查询结果。参数查询虽然使用灵活,但是存在一定的缺点。例如,...
  • java 程序中创建有2个窗体,一个为登录窗口,连数据库,输入用户名和密码后如何跳转到主窗口import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Login extends JFrame implements ...
  • // 创建一个容量3的仓库  //添加产品  private void button1_Click(object sender, EventArgs e)  {  if (textBox1.Text != "" && textBox2.Text != "" && textBox6.Text != "")  {  Student p = new...
  • 知识点:控件排列和对齐的方法、创建MDI窗体的方法、高级控件(工具条ToolStrip、状态条StatusStrip、图片框PictureBox、图片列表ImageList、定时器Timer)的使用、数据验证代码的编写、窗体间数据传递的方法 ...
  • C#大作业——学生信息管理系统

    千次阅读 多人点赞 2022-06-02 20:50:32
    1:新建一个数据库 2:表中数据 3:填充表中数据 对数据的基本操作 1:新增 2:修改 3:删除 4:查询 单表、多表的查询 什么需要创建关联表? C# WinForm和数据库结合操作 获取数据框的值 新增数据(连接数据库+...
  • access实验报告窗体和界面设计

    千次阅读 2020-12-24 22:19:17
    课程名称信息管理实验项目名称窗体和界面设计学院班级学生姓名学号同组人员日期2016年11月10日节次地点实验目的:了解不同的窗体;掌握【窗体设计】工具创建窗体,熟悉窗体各种类型的控件实验环境:WindowsXP、...
  • 建立一个学生表名字Student 双击窗体进入代码界面,最顶上输入: Imports System.Data.SqlClient '导入命名空间 窗体的代码: Public Class UserControl1 '系统自动生成的 Dim ds As DataSet = New DataSet '建立...
  • 随着互联网科技的迅速发展,各种计算机语言也逐渐走进大众的视线,作为一名非科班出身的小白,我一直想掌握一门计算机语言,成为编程界的达人。经过个人的多次比较,我最终选择了C#作为自己的敲门砖。我接触C#的时间...
  • 第一课:创建一个windows窗口

    千次阅读 2021-05-20 03:40:00
    我是计算机专业的学生,对图形图像技术有浓厚的兴趣,就读期间广泛的涉及相关知识,但始终没有深入研究。原因很简单,我认为广度可以决定深度,大学期间应博学,不宜专于细节。现在毕业了,我选择了图形学作为自己...
  • 目录 安装SQLServer 创建新项目 建数据库建表 窗体设计 ...用SQLServer链接Visual Studio,首先需要下载SQL...安装好SQL之后,打开VisualStudio2019,新建一个window项目 ,步骤如下:选择创建新项目 选择Win.
  • 根据所学JAVA以及数据库知识,实现符合要求简单的学生信息管理系统、在SQL server中建立表和视图(1)首先创建数据库--“教务系统”;(2)在SQL Server 2008中创建关系数据模型(即表结构),共设计6表分别管理员,...
  • 假设有“教师”、“学生”、“课程”三实体,教师的基本信息包括:工号、姓名、职称、工资,课程的基本信息包括:课程号、课程、学分数,学生的基本信息包括:学号、姓名、性别、年龄。系统必须满足以下要求: ...
  • 上一次一个小伙伴私聊我,说:有没有swing版本的学生管理系统让他参考一下。 这次给他安排上啦! 首先来看看有什么文件吧(得要有个适合自己的命名规则很重要,如果自己都看不懂,那么别人就更难懂啦!) //我...
  • 数据库表的创建、管理和数据操作(实验),数据库创建今天我们就以实验的形式对表的创建、管理和数据操作进行学习,上课吧。【实验目的】:了解SQL语言的... 利用数据定义语句在实验一创建的stu_DB库中建立学生管...
  • C#实验报告:Windows窗体设计.doc

    千次阅读 2021-07-02 00:16:01
    郑 州 轻 工 业 大 学实 验 报 告课程名称: C#程序设计实验名称: Windows窗体设计院 (系): 计算机与通信工程学院姓 :学 号:专业班级: 计算机指导教师:2019 年 10 月 11 日郑州轻工业大学实验报告实验课程:...
  • C#学生信息管理系统-代码展示

    千次阅读 多人点赞 2020-06-08 09:21:00
    if (sqlDataReader.HasRows && radioButton1.Checked && txtVerifyCode.Text.Equals(VerifyCode, StringComparison.OrdinalIgnoreCase)) //学生成功登录 { MessageBox.Show("欢迎使用!"); //登录成功 FormStudent ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,495
精华内容 1,798
热门标签
关键字:

创建一个名为学生信息的窗体