摘 要:详细介绍了使用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 等于 new OleDbCommand();
.Connection 等于 con;
.CommandText 等于 sql;
OleDbDataReader sdr 等于 .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 等于 new OleDbCommand();
.Connection 等于 con;
.CommandText 等于 sql;
OleDbDataReader sdr 等于 .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控件动态生成图书信息系统多级书目的方法,其它功能可在此基础上进一步补充与完善,在最终实现与图书信息数据库的连接后,可以实现一个完整的图书信息管理系统.