本项目主要让学生学习"TREEVIEW的显示排序"和"LISTVIEW的(分组)显示和查找"
(一)界面的设计
数据库表设计
输入相关数据
(二)实现TREEVIEW里学生的排序
//自定义访问数据库表的方法GetView
private DataView GetView(string connString, string SQLString, string tableName)
{
DataSet ds = new DataSet();
SqlDataAdapter sqlDA = new SqlDataAdapter(SQLString, new SqlConnection(connString));
sqlDA.Fill(ds, tableName);
return ds.Tables[tableName].DefaultView;
}
//在窗体类中定义数据视图类对象dvStudent,准备存放数据
DataView dvStudent;
//自定义GenStudentView用以通过调用GetView方法将返回的数据存放在dvStudent中
private void GenStudentView()
{
dvStudent = GetView(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DBStudent.mdf;Integrated Security=True;User Instance=True", "select * from StudentBase", "StudentBase");
}
//自定义ShowTree方法显示树
private void ShowTree(int choose)
{
TreeNode rootNode;
TreeNode newNode;
tvwStud.ShowNodeToolTips = true;
tvwStud.ShowPlusMinus = true;
tvwStud.Nodes.Clear();
rootNode = tvwStud.Nodes.Add("-1", "学生基本信息");
rootNode.ImageIndex = 0;
switch (choose)
{
case 0:
dvStudent.Sort = "";
break;
case 1:
dvStudent.Sort = "sex Asc,no Asc";
break;
case 2:
dvStudent.Sort = "sex Asc,no DESC";
break;
}
foreach (DataRowView drv in dvStudent)
{
newNode = rootNode.Nodes.Add(drv["no"].ToString()+" "+drv["name"].ToString());
newNode.Tag = drv;
newNode.ImageIndex = ((bool)drv["sex"]) ? 1 : 2;
newNode.SelectedImageIndex = ((bool)drv["sex"]) ? 1 : 2;
}
tvwStud.ExpandAll();
}
//在FrmMain_Load方法中调用GenStudentView方法和ShowTree方法
GenStudentView();
ShowTree(0);
//按钮的CLICK事件方法
private void btnAsc_Click(object sender, EventArgs e)
{
ShowTree(1);
}
private void btnDesc_Click(object sender, EventArgs e)
{
ShowTree(2);
}
private void btnNormal_Click(object sender, EventArgs e)
{
ShowTree(0);
}
(三)用LISTVIEW显示学生成绩
//在窗体类中定义数据视图类对象dvStudent,准备存放数据
DataView dvScores;
//自定义GenScoresView用以通过调用GetView方法将返回的数据存放在dvScores中
private void GenScoresView()
{
dvScores = GetView(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DBStudent.mdf;Integrated Security=True;User Instance=True", "select * from Scores", "Scores");
}
//tvwStud_AfterSelect事件处理方法显示列表视图
private void tvwStud_AfterSelect(object sender, TreeViewEventArgs e)
{
txbName.Text = string.Empty;
lvStu.Clear();
lvStu.Columns.Add("考试名称", 120);
lvStu.Columns.Add("语文");
lvStu.Columns.Add("数学");
lvStu.Columns.Add("外语");
if (e.Node.Parent == null)
{
dvScores.RowFilter = "";
foreach (DataRowView drv in dvScores)
{
if (!lvStu.Groups.Contains(new ListViewGroup(drv["no"].ToString())))
{
ListViewGroup lvg = new ListViewGroup(string.Format("{0}", drv["no"].ToString()), HorizontalAlignment.Center);
lvStu.Groups.Add(lvg);
lvg.Name = drv["no"].ToString();
}
ListViewItem lvi = new ListViewItem(drv["TestName"].ToString(), 0);
lvi.UseItemStyleForSubItems = false; //
lvi.BackColor = Color.WhiteSmoke;
ListViewItem.ListViewSubItem lvsi=lvi.SubItems.Add(drv["Chinese"].ToString());
lvsi.ForeColor = Color.RoyalBlue;
lvi.SubItems.Add(drv["Maths"].ToString());
lvi.SubItems.Add(drv["English"].ToString());
lvi.ToolTipText = string.Format("语文:{0} 数学:{1} 外语:{2}", drv["Chinese"].ToString(), drv["Maths"].ToString(), drv["English"].ToString());
lvi.Group = lvStu.Groups[drv["no"].ToString()];
lvStu.Items.Add(lvi);
}
}
else
{
dvScores.RowFilter = "no='" + ((DataRowView)e.Node.Tag)["no"] + "'";
lvStu.Groups.Clear();
foreach (DataRowView drv in dvScores)
{
ListViewItem lvi = new ListViewItem(drv["TestName"].ToString(), 0);
lvi.SubItems.Add(drv["Chinese"].ToString());
lvi.SubItems.Add(drv["Maths"].ToString());
lvi.SubItems.Add(drv["English"].ToString());
lvi.ToolTipText = string.Format("语文:{0} 数学:{1} 外语:{2}", drv["Chinese"].ToString(), drv["Maths"].ToString(), drv["English"].ToString());
lvStu.Items.Add(lvi);
}
}
}
//在FrmMain_Load方法中设置相关属性
lvStu.View = View.Details;
lvStu.SmallImageList = ilSmall;
lvStu.LargeImageList = ilLarge;
//拖放上下文菜单
private void 大图标ToolStripMenuItem_Click(object sender, EventArgs e)
{
lvStu.View = View.LargeIcon;
}
private void 详细信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
lvStu.View = View.Details;
}
private void 小图标ToolStripMenuItem_Click(object sender, EventArgs e)
{
lvStu.View = View.SmallIcon;
}
private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
{
lvStu.View = View.List;
}
private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
lvStu.View = View.Tile;
}
(四)查询LISTVIEW中相关信息
//在窗体类中自定义MyField类
class MyField
{
string engName;
string chnName;
public MyField(string eName,string cName)
{
engName = eName;
chnName = cName;
}
public string EngName
{
get
{
return engName;
}
}
public string ChnName
{
get
{
return chnName;
}
}
}
//自定义显示查询字段名称
private void ShowCombox()
{
List<MyField> myList = new List<MyField>();
myList.Add(new MyField("Chinese", "语文"));
myList.Add(new MyField("Maths", "数学"));
myList.Add(new MyField("English", "外语"));
myList.Add(new MyField("TestName", "考试类型"));
combName.Items.Clear();
combName.DataSource = myList;
combName.DisplayMember="chnName";
combName.ValueMember = "engName";
combName.SelectedIndex = 0;
}
//自定义显示查询运算符
private void ShowCompare()
{
combCompare.Items.Clear();
combCompare.Items.Add("=");
combCompare.Items.Add("<>");
combCompare.Items.Add(">");
combCompare.Items.Add(">=");
combCompare.Items.Add("<");
combCompare.Items.Add("<=");
combCompare.SelectedIndex = 0;
}
//自定义显示查询运算符2
private void ShowCompare2()
{
combCompare.Items.Clear();
combCompare.Items.Add("like");
combCompare.Items.Add("not like");
combCompare.SelectedIndex = 0;
}
//当查询字段名称改变时的事件处理方法
private void combName_SelectedIndexChanged(object sender, EventArgs e)
{
if (combName.SelectedIndex == combName.Items.Count - 1)
ShowCompare2();
else
ShowCompare();
}
//查找按钮的CLICK事件处理方法
private void btnSearch_Click(object sender, EventArgs e)
{
if (txbName.Text == string.Empty)
{
MessageBox.Show("请输入一个条件");
txbName.Focus();
return;
}
lvStu.Clear();
lvStu.Columns.Add("考试名称", 120);
lvStu.Columns.Add("语文");
lvStu.Columns.Add("数学");
lvStu.Columns.Add("外语");
if (combName.SelectedIndex == combName.Items.Count - 1)
{
dvScores.RowFilter = combName.SelectedValue + " " + combCompare.SelectedItem.ToString() + " '%" + txbName.Text.Trim() + "%'";
}
else
{
dvScores.RowFilter = combName.SelectedValue + combCompare.SelectedItem.ToString() + txbName.Text.Trim();
}
foreach (DataRowView drv in dvScores)
{
if (!lvStu.Groups.Contains(new ListViewGroup(drv["no"].ToString())))
{
ListViewGroup lvg = new ListViewGroup(string.Format("{0}", drv["no"].ToString()), HorizontalAlignment.Center);
lvStu.Groups.Add(lvg);
lvg.Name = drv["no"].ToString();
}
ListViewItem lvi = new ListViewItem(drv["TestName"].ToString(), 0);
lvi.UseItemStyleForSubItems = false; //
lvi.BackColor = Color.WhiteSmoke;
ListViewItem.ListViewSubItem lvsi = lvi.SubItems.Add(drv["Chinese"].ToString());
lvsi.ForeColor = Color.RoyalBlue;
lvi.SubItems.Add(drv["Maths"].ToString());
lvi.SubItems.Add(drv["English"].ToString());
lvi.ToolTipText = string.Format("语文:{0} 数学:{1} 外语:{2}", drv["Chinese"].ToString(), drv["Maths"].ToString(), drv["English"].ToString());
lvi.Group = lvStu.Groups[drv["no"].ToString()];
lvStu.Items.Add(lvi);
}
}
(五)运行效果图:
分享到:
相关推荐
4.实现管理员对学生信息查询,有模糊查询和精确查询。 5.实现管理员对学生信息的跟新修改。 6.实现了管理员对学生信息的删除。 关于系统:该系统运用Visual Studio进行编写,数据库sqlserver。考虑到版本问题,...
基于ASP.NET的C#学生信息管理系统源码+数据库+开发文档+使用说明.zip 已获导师指导并通过的高分项目。下载即用,无需修改。本项目是一套基于ASP.NET的C#学生信息管理系统,主要针对计算机相关专业的正在做毕设的学生...
C#通讯录项目学生期末作业C#通讯录项目学生期末作业
用C#做的一个学生综合信息管理系统, 在高校中由于学生众多,学籍信息量庞大,需要一个合理的软件平台来将信息整理保存。所以各个高校都有自己的学生个人信息系统便于学生及校方信息存放,并且双方能够通过此平台更...
基于C#的学生信息管理系统
【C#项目实战】学生社团信息管理系统(MVC三层架构) 基于三层架构,含实训报告,源代码,数据库文件。 【这个数据库少了公告表,请自行根据实训报告更改】 项目最新地址:https://www.lanzous.com/i4mtx8b 我也没空...
ASP.NET C# 大学生信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为vs2010,数据库为sqlserver2008,或者以上版本都 二、功能介绍 (1)学生管理:对...
C#开发软件课程设计学生信息管理系统项目源代码。mysql数据库文件在文件中Resources/MysqlData/database_test0.sql可以使用 数据库可视化软件(如HideSQL)进行导入 。 使用了MaterialDesign 框架 需要自行Nuget搜索...
资源名字:基于C#+asp.net+sqlserver的学生信息管理系统设计与实现(源码+文档)_C#_asp.net_BS架构_学生信息管理系统.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功...
基于C#开发的STEP文件解析器完整源码+项目说明(毕设项目).zip 【资源介绍】 此项目是本人的毕业设计的研究课题,旨在实现一个STEP解析器,预期功能如下: 解析STEP文件,识别出各组成元素的类型、详细信息,以及元素...
学生信息管理系统 1 引言 1.1 项目背景 随着信息技术在管理上越来越深入而广泛的应用, 管理信息系统的实施在技术上已逐步 成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地 把...
学生信息查找:可根据学生姓名等信息查询学生通信录中的学生信息,便于检索。 学生信息分类:可根据预先设置的类别标签,对学生进行分类,便于管理,该功能属于扩展功能。 学生信息备份:对保存学生信息的xml文件...
用C#语言写的学生成绩管理系统, 代码有参考和学习价值, 可用于期末项目, 以及毕业设计项目 !
学生信息管理系统,不同的本系统由学生、管理员用户进入,根据不同的用户所执行的权限不同,附带.sdf数据库,有什么疑问可直接加QQ:179148271
基本功能包括用户登录注册、添加学生信息、删除学生信息、查找学生信息、修改学生信息、竞赛项目管理、学生提交竞赛项目申请等。 1)登录:教师、学生登录,各自登录自己的模块。 2)注册:教师填写信息注册账号 3)...
北大青鸟C#课程学生项目-收银系统
c#开发的学生信息管理系统 主要适用于大学生初步接触项目的时候 这个也是我大三时候老师带着做的一个学生信息管理系统 内带数据库及源代码
利用VSIUAL STUDIO 2005 做得学生管理系统,有管理员,学生,教师三个用户身份,有修改密码,增删查改的功能
学生管理系统 C# 项目 C#项目学生管理系统