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()
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()
相关文章推荐
- 分享一个CSS3实现的动态内容标签页切换效果教程
- winform,DataGridView绑定数据后更改列属性、动态创建(用一个控件显示多表适用)
- C# winform datagridview中如何实现鼠标右键点击一行数据出现一个带有删除的菜单,并能执行删除操作?
- 分享一个CSS3实现的动态内容标签页切换效果教程
- BindingSource实现DataGridview与TextBox动态显示(绑定WinForm)
- 分享一个CSS3实现的动态内容标签页切换效果教程
- C#中使用BindingList 绑定DataGridView 可以实现动态绑定,优与List<T>集合的绑定
- Spring 配置多个数据源,并实现动态切换
- c#在winform中用DataGridView实现分页效果
- Android 动态布局实现多主题切换
- Winform下实现图片切换特效
- javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
- Android中实现动态切换组件背景的操作
- Vuforia SDK---- AR开发vuforia 相机前后摄像头动态切换功能实现
- 输入参数能动态调决定调用哪个实现类 spring的一个特性
- C#--WinForm--实现查询列表的动态排序
- 在winform中实现多窗口的使用 及切换
- 小数运算需要注意什么? 接口和抽象类 WinForm窗体上两个panel,怎么实现一个panel固定漂浮在另一个panel之上
- 用javascript实现动态切换模块
- 【Android】一个浏览图片的Android库的实现,可以移动、缩放图片以及滑动切换