TreeView控件与SQL数据库的应用遍历算法.docx

上传人:b****4 文档编号:5519002 上传时间:2023-05-08 格式:DOCX 页数:47 大小:56.46KB
下载 相关 举报
TreeView控件与SQL数据库的应用遍历算法.docx_第1页
第1页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第2页
第2页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第3页
第3页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第4页
第4页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第5页
第5页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第6页
第6页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第7页
第7页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第8页
第8页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第9页
第9页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第10页
第10页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第11页
第11页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第12页
第12页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第13页
第13页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第14页
第14页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第15页
第15页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第16页
第16页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第17页
第17页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第18页
第18页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第19页
第19页 / 共47页
TreeView控件与SQL数据库的应用遍历算法.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

TreeView控件与SQL数据库的应用遍历算法.docx

《TreeView控件与SQL数据库的应用遍历算法.docx》由会员分享,可在线阅读,更多相关《TreeView控件与SQL数据库的应用遍历算法.docx(47页珍藏版)》请在冰点文库上搜索。

TreeView控件与SQL数据库的应用遍历算法.docx

TreeView控件与SQL数据库的应用遍历算法

时间:

2011-03-2510:

08来源:

未知作者:

admin点击:

363次我要投稿  高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等

开发环境:

WinXPSP3,VS2008,SQL2000

TreeView控件与SQL数据库的应用(遍历算法)

(数据与TreeView的绑定及Treeview的增加、删除、修改、遍历等数据库的操作)

这个是数据库连接及一些操作数据库的方法,文件:

SqlManager.cs

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Data.SqlClient;

usingSystem.Data;

usingSystem.Windows.Forms;

namespaceTreeViewText

{

classSqlManager

{

SqlConnectionconn;

stringstrConn;

publicSqlManager()

{

strConn=@"DataSource=.;InitialCatalog=TreeView;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;Password=sa";

conn=newSqlConnection(strConn);

}

publicDataSetGetDataSet()

{

DataSetds=newDataSet();

SqlDataAdaptersda=newSqlDataAdapter(querySqlCmd,conn);

try

{

conn.Open();

sda.Fill(ds);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"获取数据失败!

");

}

finally

{

if(conn.State==ConnectionState.Open)

{

conn.Close();

}

}

returnds;

}

publicDataSetGetDataSet(stringsqlCmd)

{

DataSetds=newDataSet();

SqlDataAdapterda=newSqlDataAdapter(sqlCmd,conn);

try

{

conn.Open();

da.Fill(ds);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"获取数据失败!

");

}

finally

{

if(conn.State==ConnectionState.Open)

{

conn.Close();

}

}

returnds;

}

publicvoidRunSqlCommand(stringsqlCmd)

{

SqlCommandcmd=newSqlCommand(sqlCmd,conn);

try

{

conn.Open();

cmd.ExecuteNonQuery();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"操作数据库失败!

");

}

finally

{

if(conn.State==ConnectionState.Open)

{

conn.Close();

}

}

}

privatestringm_querySqlCmd;

#region获取SQL语句

publicstringquerySqlCmd

{

get

{

if(m_querySqlCmd==null)

{

return"select*fromTreeNode";

}

returnquerySqlCmd;

}

set

{

m_querySqlCmd=value;

}

}

#endregion

}

}

主窗体:

Form1.cs

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespaceTreeViewText

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

privatevoidForm1_Load(objectsender,EventArgse)

{

//TreeNodetreeNode1=newTreeNode("节点1",newTreeNode[]{treeNode4,treeNode5});

//treeView1.Nodes.AddRange(newTreeNode[]{treeNode1});

}

#regionTreeView节点编辑(没有修改数据库)

privatevoidbtnEdit_Click(objectsender,EventArgse)

{

if(treeView1.SelectedNode!

=null)

if(!

treeView1.SelectedNode.IsEditing)

treeView1.SelectedNode.BeginEdit();

}

privatevoidbtnDelete_Click(objectsender,EventArgse)

{

if(treeView1.SelectedNode!

=null)

treeView1.SelectedNode.Remove();

}

privatevoidbtnAddNode_Click(objectsender,EventArgse)

{

TreeNodetreeNodeTemp=newTreeNode(GetNodeText());

if(treeView1.Nodes.Count>0)

{

if(treeView1.SelectedNode!

=null)

{

if(treeView1.SelectedNode.Parent!

=null)

treeView1.SelectedNode.Parent.Nodes.Add(treeNodeTemp);

else

treeView1.Nodes.Add(treeNodeTemp);

}

}

else

{

treeView1.Nodes.Add(treeNodeTemp);

}

}

privatevoidbtnAddChild_Click(objectsender,EventArgse)

{

TreeNodetreeNodeTemp=newTreeNode(GetNodeText());

if(treeView1.SelectedNode!

=null)

{

treeView1.SelectedNode.Nodes.Add(treeNodeTemp);

}

}

#region获取文本框文本信息

///

///获取文本框文本信息

///

///string

privatestringGetNodeText()

{

if(!

String.IsNullOrEmpty(tbNodeName.Text.Trim()))

returntbNodeName.Text.Trim();

return"TreeNode";

}

#endregion

#endregion

///

///查询数据

///

///

///

privatevoidbtnQuery_Click(objectsender,EventArgse)

{

SqlManagersqlManager=newSqlManager();

dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];

//清空TreeView的内容

treeView1.Nodes.Clear();

//递归函数,0为根节点的父节点ParentID的值

AddTreeView(0,(TreeNode)null);

//非递归(两层分类显示)

//ShowTreeView((TreeNode)null);

//展开所有树节点

//treeView1.Expand();

}

///

///退出程序

///

///

///

privatevoidbtnExit_Click(objectsender,EventArgse)

{

this.Close();

}

#region获得数据库信息放入TreeView中(递归)

privatevoidAddTreeView(intParentID,TreeNodeparentNode)

{

SqlManagersqlManager=newSqlManager();

DataViewdataTree=newDataView(sqlManager.GetDataSet().Tables[0]);

stringfilter="ParentID="+ParentID;

dataTree.RowFilter=filter;

foreach(DataRowViewrowindataTree)

{

TreeNodenode=newTreeNode();

//处理根节点

if(parentNode==null)

{

node.Name=row["ID"].ToString();

node.Text=row["Name"].ToString();

treeView1.Nodes.Add(node);

AddTreeView(Int32.Parse(row["ID"].ToString().Trim()),node);

}

//处理子节点

else

{

node.Name=row["ID"].ToString();

node.Text=row["Name"].ToString();

parentNode.Nodes.Add(node);

AddTreeView(Int32.Parse(row["ID"].ToString().Trim()),node);

}

}

}

#endregion

#region获得数据库信息放入TreeView中(非递归函数,根据Category来分类,仅支持两层分类)

/*privatevoidShowTreeView(TreeNodepNode)

{

treeView1.Nodes.Clear();

SqlManagersqlManager=newSqlManager();

DataViewdataTree=newDataView(sqlManager.GetDataSet("selectdistinctCategoryfromTreeNode").Tables[0]);

foreach(DataRowViewrowindataTree)

{

TreeNodenode=newTreeNode();

node.Text=row["Category"].ToString();

treeView1.Nodes.Add(node);

CreateChildNodes(node);

}

}

//获取第二层节点的的数据

privatevoidCreateChildNodes(TreeNodetreenode)

{

SqlManagersqlManager=newSqlManager();

DataViewdataTree=newDataView(sqlManager.GetDataSet().Tables[0]);

dataTree.RowFilter="Category='"+treenode.Text+"'";

foreach(DataRowViewrowindataTree)

{

TreeNodenode=newTreeNode();

node.Text=row["Name"].ToString();

treenode.Nodes.Add(node);

}

}*/

#endregion

///

///添加记录

///

///

///

privatevoidbtnAdd_Click(objectsender,EventArgse)

{

SqlManagersqlManager=newSqlManager();

stringinsertSqlCmd=String.Empty;

if(TextBoxValidator(tbParentID))

{

MessageBox.Show("请输入ParentID(父节点)","提示");

tbParentID.Focus();

}

elseif(TextBoxValidator(tbName))

{

MessageBox.Show("请输入Name(物品名称)","提示");

tbName.Focus();

}

elseif(TextBoxValidator(tbCategory))

{

MessageBox.Show("请输入Category(物品类别)","提示");

tbCategory.Focus();

}

else

{

insertSqlCmd="insertintoTreeNode(ParentID,Name,Category)values("+tbParentID.Text.Trim()+",'"+tbName.Text.Trim()+"','"+tbCategory.Text.Trim()+"');";

sqlManager.RunSqlCommand(insertSqlCmd);

dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];

treeView1.Nodes.Clear();

AddTreeView(0,(TreeNode)null);

//treeView1.ExpandAll();

}

}

///

///修改记录

///

///

///

privatevoidbtnModify_Click(objectsender,EventArgse)

{

SqlManagersqlManager=newSqlManager();

stringupdateSqlCmd=String.Empty;

if(TextBoxValidator(tbID))

MessageBox.Show("请先选择一个产品","提示");

elseif(TextBoxValidator(tbParentID))

{

MessageBox.Show("请输入ParentID(父节点)","提示");

tbParentID.Focus();

}

elseif(tbID.Text.Trim()==tbParentID.Text.Trim())

{

MessageBox.Show("ID(产品ID)不能与ParentID(父节点)相同,请重新输入","提示");

tbParentID.Focus();

}

elseif(TextBoxValidator(tbName))

{

MessageBox.Show("请输入Name(物品名称)","提示");

tbName.Focus();

}

elseif(TextBoxValidator(tbCategory))

{

MessageBox.Show("请输入Category(物品类别)","提示");

tbCategory.Focus();

}

else

{

updateSqlCmd="updateTreeNodesetParentID="+tbParentID.Text.Trim()+",Name='"+tbName.Text.Trim()+"',Category='"+tbCategory.Text.Trim()+"'whereID="+tbID.Text.Trim()+";";

sqlManager.RunSqlCommand(updateSqlCmd);

dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];

treeView1.Nodes.Clear();

AddTreeView(0,(TreeNode)null);

//treeView1.ExpandAll();

}

}

///

///删除记录

///

///

///

privatevoidbtnRemove_Click(objectsender,EventArgse)

{

if(treeView1.SelectedNode!

=null)

{

TreeNodenode=treeView1.SelectedNode;

//删除所选节点及其所有子节点

DeleteTreeNode(node);

SqlManagersqlManager=newSqlManager();

dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];

}

}

///

///删除所选节点及其所有子节点(通过遍历节点删除对应的数据库数据)

///

///

privatevoidDeleteTreeNode(TreeNodeparentNode)

{

/***************方法一:

删除选中节点及其所有子节点***************/

intchildCount=parentNode.Nodes.Count;

for(inti=0;i

{

TreeNodechildNode=parentNode.Nodes[0];

if(childNode.Nodes.Count>0)

{

DeleteTreeNode(childNode);

}

else

{

DeleteNodeData(childNode);

childNode.Remove();

}

}

if(parentNode.Nodes.Count==0)

{

DeleteNodeData(parentNode);

parentNode.Remove();

}

/***************方法二:

删除选中节点及其所有子节点***************/

//TreeNodeCollectiontreeNodeCollection=parentNode.Nodes;

//intcount=treeNodeCollection.Count;

//for(inti=0;i

//{

//TreeNodenode=treeNodeCollection[0];

//if(node.Nodes.Count>0)

//{

//DeleteTreeNode(node);

//}

//else

//{

//DeleteNodeData(node);

//node.Remove();

//}

//}

//if(treeNodeCollection.Count==0)

//{

//DeleteNodeData(parentNode);

//parentNode.Remove();

//}

}

///

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2