您的位置:首页 > 其它

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

2017-10-27 23:08 756 查看
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  winform