winform中在一个DataGridView中实现多个表的动态切换

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
using System.Windows.Forms;


namespace StudentTest.Test
{
    public partial class MainTest : Form
    {
        DB.DBManager dbm = new DB.DBManager();
        List<Entity.student> stuList = new List<Entity.student>();  //获取的student表的数据集
        List<Entity.teacher> teaList = new List<Entity.teacher>();   //获取的teacher表的数据集
    
        private string sql = null;  //查询数据库中某张表
        private int tflag = 0;  //注界面表区分标志,tflag=偶数时为学生成绩表,=奇数为学生个人信息表


        DataGridView dgv = new DataGridView();


        DataSet ds = new DataSet();
        string name = null;
        string flag = null;
        public MainTest()
        {
            InitializeComponent();
        }


        public MainTest(string name,string flag) {
            InitializeComponent();
            this.name = name;
            this.flag = flag;
        }


        private void MainTest_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }


        private void MainTest_Load(object sender, EventArgs e)
        {
            if (flag == "教师")
            {
                this.Text = "主界面                " + "欢迎教师“" + name + "”,拥有查看学生个人信息表和增删改查学生成绩表权限!";
            }
            else if (flag == "学生")
            {
                this.Text = "主界面                " + "欢迎学生“" + name + "”,只有查看和修改部分个人信息权限!";
                sql = "select * from scoreInfo";
                //this.修改ToolStripMenuItem.Enabled = false;
            }
            showScoreInfo(sql);
        }


        private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
        {
//            MessageBox.Show(name);
            if (flag == "教师")
            {
                UpdateTeacherTest tea = new UpdateTeacherTest(name);
                //UpdateTeacherTest tea = new UpdateTeacherTest();
                tea.ShowDialog();
            }
            else if (flag == "学生")
            {
                UpdateStudentTest stu = new UpdateStudentTest(name,flag);
                stu.ShowDialog();
            }
        }


        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }


        private void 重新登录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Dispose();
            LoginTest login = new LoginTest();
            login.ShowDialog();
        }


        //学生成绩表<------>学生个人信息表
        private void btTrans_Click(object sender, EventArgs e)
        {
            if (tflag% 2 == 1) {
                sql = "select sNum,sName,sSex,sMajor,sBornTime from studentInfo";
                showStudentInfo(sql);
            }
            else if (tflag % 2 == 0) {
                sql = "select * from scoreInfo"; 
                showScoreInfo(sql);
            }
        }


        //显示表studentInfo
        private void showStudentInfo(string sql) {
            AddDGV();
            ds = dbm.getAllTable(sql, tflag);
            //对dataGridView1的设置
            //AddColumns();
            dgv.DataSource = null;
            dgv.DataSource = ds.Tables["stTable"];
            dgv.Dock = DockStyle.Fill;
            dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dgv.AutoGenerateColumns = false;
            dgv.Columns[0].HeaderText = "学号";
            dgv.Columns[1].HeaderText = "姓名";
            dgv.Columns[2].HeaderText = "性别";
            dgv.Columns[3].HeaderText = "专业";
            dgv.Columns[4].HeaderText = "出生日期";
            //MessageBox.Show(dataGridView1.Columns.Count.ToString());
            //dataGridView1.Columns[5].Visible = false;
            //dataGridView1.Columns[6].Visible = false;
            tflag++;
            this.lbSelfInfo.Enabled = true;
            this.lbScore.Enabled = false;
        }


        //显示表scoreInfo
        private void showScoreInfo(string sql) {
            AddDGV();
            ds = dbm.getAllTable(sql,tflag);
            //对dataGridView1的设置
            //AddColumns();
            dgv.DataSource = null;
            dgv.DataSource = ds.Tables["scTable"];
            dgv.Dock = DockStyle.Fill;
            dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dgv.AutoGenerateColumns = false;
            dgv.Columns[0].HeaderText = "学号";
            dgv.Columns[1].HeaderText = "姓名";
            dgv.Columns[2].HeaderText = "班级";
            dgv.Columns[3].HeaderText = "英语成绩";
            dgv.Columns[4].HeaderText = "数学成绩";
            dgv.Columns[5].HeaderText = "学分绩点";
            dgv.Columns[6].HeaderText = "备注";
            //MessageBox.Show(dataGridView1.Columns.Count.ToString());
            tflag++;
            this.lbSelfInfo.Enabled = false;
            this.lbScore.Enabled = true;
        }


        //动态向groupBox2添加DataGridView控件
        private void AddDGV() {
            dgv.Visible = false;
            dgv = new DataGridView();
            dgv.SetBounds(7, 26, 673, 354);
            this.groupBox2.Controls.Add(dgv);
        }
    }

}


注:在每次绑定数据前都调用AddDgv()

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值