时间:2022-08-15 10:48:38
摘 要:详细介绍了使用TreeView控件的图书信息系统多级书目节点动态实现方法,在实现与图书信息数据库的连接后,能够实现一个完整的图书信息管理系统。
关键词:C#;TreeView控件;多级书目节点;图书信息系统
中图分类号:TP301 文献标识码:A 文章编号:16727800(2012)011004102
________________________________________
作者简介:邹治军(1976-),男,硕士,南京化工职业技术学院信息技术系讲师,研究方向为智能检测与智能控制。0 引言
在.NET应用程序中,TreeView控件用来显示节点(TreeNode)对象的级层结构,通常用于显示一些有等级结构的信息,例如Windows资源管理器左边显示文件和文件夹的窗口。本文以简易电子图书信息系统开发为背景,详细论述了C#应用程序中,使用TreeView控件的电子图书信息系统的多级书目动态生成方法。
1 应用程序界面设计
运行VS2010,新建C# Windows应用程序项目。
(1)添加程序窗体,进行属性设置。
(2)添加和设置SplitContainer控件。在上一步添加的窗体中拖入一个SplitContainer控件,设置相应属性值。SplitContainer控件是由两个Panel面板和一个Split拆分条组成的复合体,拥有两个面板可以聚合不同区域中的信息(一个面板的选择决定了另一个面板显示的内容)。
(3)添加TreeView控件。TreeView控件按树形结构来显示标记项的分层集合,每一个标记项用一个TreeNode来表示。在SplitContainer.Panel1中添加一个TreeView控件,设置其Dock属性为fill。
(4)添加ListView控件。在SplitContainer.Panel2中添加一个ListView控件,设置其Dock属性为fill。当选中某一个节点后,在ListView控件中显示对应的信息。
2 程序代码实现
创建Access2003数据库,编辑保存多级图书目录节点信息,如图1所示。
(1)导入数据库db1.mdb,使用Using 语句引入OleDb的命名空间,代码如下:
图1 书目节点数据库
using System.Data.OleDb;
(2)数据库的连接字符串代码:
String connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";
(3)使用Connection对象与数据源建立连接之后,使用Command对象来对数据源执行查询等各种操作。
private void Form1_Load(object sender, EventArgs e)
{
initTree();
}
private void initTree()
{
string connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";
OleDbConnection con = new OleDbConnection();
con.ConnectionString = connectionstring;
con.Open();
String sql = "select ID,NodeName from TreeView where Node_Parent_ID=0";
OleDbCommand com = new OleDbCommand();
com.Connection = con;
mandText = sql;
OleDbDataReader sdr = com.ExecuteReader();
while (sdr .Read())
{
string nodeText = sdr["Node_Name"].ToString();
TreeNode tn = new TreeNode(nodeText);
tn.Tag = sdr["Node_ID"].ToString();
tn .Nodes .Add (new TreeNode() );
this.treeView1.Nodes.Add(tn);
}
con.Close();
}
(4)TreeView1的AfterSelect事件,在选定树结点后发生的事件,代码如下:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
initDri(e.Node);
}
private void initDri(TreeNode tn)
{
tn.Nodes.Clear();
string connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";
OleDbConnection con = new OleDbConnection();
con.ConnectionString = connectionstring;
con.Open();
String sql = "select Node_ID,Node_Name from TreeView where Node_Parent_ID=" + tn.Tag;
OleDbCommand com = new OleDbCommand();
com.Connection = con;
mandText = sql;
OleDbDataReader sdr = com.ExecuteReader();
while (sdr.Read())
{
string nodeText = sdr["Node_Name"].ToString();
TreeNode tn1 = new TreeNode(nodeText);
tn1.Tag = sdr["Node_ID"].ToString();
tn1.Nodes.Add(new TreeNode());
tn.Nodes.Add(tn1);
}
}
图2 程序运行效果
3 结语
本文着重介绍了使用TreeView控件动态生成图书信息系统多级书目的方法,其它功能可在此基础上进一步补充与完善,在最终实现与图书信息数据库的连接后,可以实现一个完整的图书信息管理系统。
参考文献:
[1] 赵会东,王小科.C#开发之道[M].北京:电子工业出版社,2011.
[2] 齐立波.C#于入门经典[M].北京:清华大学出版社,2010.