ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:56.46KB ,
资源ID:11107051      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11107051.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TreeView控件与SQL数据库的应用遍历算法.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、TreeView控件与SQL数据库的应用遍历算法时间:2011-03-25 10:08来源:未知 作者:admin 点击: 363次我要投稿高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等开发环境:WinXP SP3,VS2008,SQL2000TreeView控件与SQL数据库的应用(遍历算法)(数据与TreeView的绑定及Treeview的增加、删除、修改、遍历等数据库的操作)这个是数据库连接及一些操作数据库的方法,文件:SqlManager.csusing System;using System.Collections.Generic;using Syste

2、m.Linq;using System.Text;using System.Data.SqlClient;using System.Data;using System.Windows.Forms;namespace TreeViewText class SqlManager SqlConnection conn; string strConn; public SqlManager() strConn = Data Source = .;Initial Catalog = TreeView; Integrated Security = SSPI; Persist Security Info =

3、False; User ID = sa; Password = sa; conn = new SqlConnection(strConn); public DataSet GetDataSet() DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(querySqlCmd, conn); try conn.Open(); sda.Fill(ds); catch (Exception ex) MessageBox.Show(ex.Message, 获取数据失败!); finally if (conn.State

4、= ConnectionState.Open) conn.Close(); return ds; public DataSet GetDataSet(string sqlCmd) DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(sqlCmd, conn); try conn.Open(); da.Fill(ds); catch (Exception ex) MessageBox.Show(ex.Message, 获取数据失败!); finally if (conn.State = ConnectionStat

5、e.Open) conn.Close(); return ds; public void RunSqlCommand(string sqlCmd) SqlCommand cmd = new SqlCommand(sqlCmd, conn); try conn.Open(); cmd.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.Message, 操作数据库失败!); finally if (conn.State = ConnectionState.Open) conn.Close(); private string m_q

6、uerySqlCmd; #region 获取SQL语句 public string querySqlCmd get if (m_querySqlCmd = null) return select * from TreeNode; return querySqlCmd; set m_querySqlCmd = value; #endregion 主窗体:Form1.csusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;us

7、ing System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace TreeViewText public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) /TreeNode treeNode1 = new TreeNode(节点1, new TreeNode treeNode4,

8、treeNode5 ); /treeView1.Nodes.AddRange(new TreeNode treeNode1 ); #region TreeView节点编辑(没有修改数据库) private void btnEdit_Click(object sender, EventArgs e) if (treeView1.SelectedNode != null) if (!treeView1.SelectedNode.IsEditing) treeView1.SelectedNode.BeginEdit(); private void btnDelete_Click(object sen

9、der, EventArgs e) if (treeView1.SelectedNode != null) treeView1.SelectedNode.Remove(); private void btnAddNode_Click(object sender, EventArgs e) TreeNode treeNodeTemp = new TreeNode(GetNodeText(); if (treeView1.Nodes.Count 0) if (treeView1.SelectedNode != null) if (treeView1.SelectedNode.Parent != n

10、ull) treeView1.SelectedNode.Parent.Nodes.Add(treeNodeTemp); else treeView1.Nodes.Add(treeNodeTemp); else treeView1.Nodes.Add(treeNodeTemp); private void btnAddChild_Click(object sender, EventArgs e) TreeNode treeNodeTemp = new TreeNode(GetNodeText(); if (treeView1.SelectedNode != null) treeView1.Sel

11、ectedNode.Nodes.Add(treeNodeTemp); #region 获取文本框文本信息 / / 获取文本框文本信息 / / string private string GetNodeText() if (!String.IsNullOrEmpty(tbNodeName.Text.Trim() return tbNodeName.Text.Trim(); return TreeNode; #endregion #endregion / / 查询数据 / / / private void btnQuery_Click(object sender, EventArgs e) Sql

12、Manager sqlManager = new SqlManager(); dataGridView1.DataSource = sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables0; /清空TreeView的内容 treeView1.Nodes.Clear(); /递归函数,0为根节点的父节点ParentID的值 AddTreeView(0, (TreeNode)null); /非递归(两层分类显示) /ShowTreeView(TreeNode)null); /展开所有树节点 /treeView1.Expand(); / / 退出程序

13、 / / / private void btnExit_Click(object sender, EventArgs e) this.Close(); #region 获得数据库信息放入TreeView中 (递归) private void AddTreeView(int ParentID, TreeNode parentNode) SqlManager sqlManager = new SqlManager(); DataView dataTree = new DataView(sqlManager.GetDataSet().Tables0); string filter = ParentI

14、D = + ParentID; dataTree.RowFilter = filter; foreach (DataRowView row in dataTree) TreeNode node = new TreeNode(); /处理根节点 if (parentNode = null) node.Name = rowID.ToString(); node.Text = rowName.ToString(); treeView1.Nodes.Add(node); AddTreeView(Int32.Parse(rowID.ToString().Trim(), node); /处理子节点 els

15、e node.Name = rowID.ToString(); node.Text = rowName.ToString(); parentNode.Nodes.Add(node); AddTreeView(Int32.Parse(rowID.ToString().Trim(), node); #endregion #region 获得数据库信息放入TreeView中 (非递归函数,根据Category来分类,仅支持两层分类) /*private void ShowTreeView(TreeNode pNode) treeView1.Nodes.Clear(); SqlManager sqlM

16、anager = new SqlManager(); DataView dataTree = new DataView(sqlManager.GetDataSet(select distinct Category from TreeNode).Tables0); foreach (DataRowView row in dataTree) TreeNode node = new TreeNode(); node.Text = rowCategory.ToString(); treeView1.Nodes.Add(node); CreateChildNodes(node); /获取第二层节点的的数

17、据 private void CreateChildNodes(TreeNode treenode) SqlManager sqlManager = new SqlManager(); DataView dataTree = new DataView(sqlManager.GetDataSet().Tables0); dataTree.RowFilter = Category = + treenode.Text + ; foreach (DataRowView row in dataTree) TreeNode node = new TreeNode(); node.Text = rowNam

18、e.ToString(); treenode.Nodes.Add(node); */ #endregion / / 添加记录 / / / private void btnAdd_Click(object sender, EventArgs e) SqlManager sqlManager = new SqlManager(); string insertSqlCmd = String.Empty; if (TextBoxValidator(tbParentID) MessageBox.Show(请输入ParentID(父节点), 提示); tbParentID.Focus(); else if

19、 (TextBoxValidator(tbName) MessageBox.Show(请输入Name(物品名称), 提示); tbName.Focus(); else if (TextBoxValidator(tbCategory) MessageBox.Show(请输入Category(物品类别), 提示); tbCategory.Focus(); else insertSqlCmd = insert into TreeNode (ParentID,Name,Category) values ( + tbParentID.Text.Trim() + , + tbName.Text.Trim(

20、) + , + tbCategory.Text.Trim() + ); sqlManager.RunSqlCommand(insertSqlCmd); dataGridView1.DataSource = sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables0; treeView1.Nodes.Clear(); AddTreeView(0, (TreeNode)null); /treeView1.ExpandAll(); / / 修改记录 / / / private void btnModify_Click(object sender, Ev

21、entArgs e) SqlManager sqlManager = new SqlManager(); string updateSqlCmd = String.Empty; if (TextBoxValidator(tbID) MessageBox.Show(请先选择一个产品, 提示); else if (TextBoxValidator(tbParentID) MessageBox.Show(请输入ParentID(父节点), 提示); tbParentID.Focus(); else if (tbID.Text.Trim() = tbParentID.Text.Trim() Messa

22、geBox.Show(ID(产品ID)不能与ParentID(父节点)相同,请重新输入, 提示); tbParentID.Focus(); else if (TextBoxValidator(tbName) MessageBox.Show(请输入Name(物品名称), 提示); tbName.Focus(); else if (TextBoxValidator(tbCategory) MessageBox.Show(请输入Category(物品类别), 提示); tbCategory.Focus(); else updateSqlCmd = update TreeNode set Parent

23、ID = + tbParentID.Text.Trim() + ,Name = + tbName.Text.Trim() + ,Category = + tbCategory.Text.Trim() + where ID = + tbID.Text.Trim() + ; sqlManager.RunSqlCommand(updateSqlCmd); dataGridView1.DataSource = sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables0; treeView1.Nodes.Clear(); AddTreeView(0, (T

24、reeNode)null); /treeView1.ExpandAll(); / / 删除记录 / / / private void btnRemove_Click(object sender, EventArgs e) if (treeView1.SelectedNode != null) TreeNode node = treeView1.SelectedNode; /删除所选节点及其所有子节点 DeleteTreeNode(node); SqlManager sqlManager = new SqlManager(); dataGridView1.DataSource = sqlMana

25、ger.GetDataSet(sqlManager.querySqlCmd).Tables0; / / 删除所选节点及其所有子节点 (通过遍历节点删除对应的数据库数据) / / private void DeleteTreeNode(TreeNode parentNode) /*方法一:删除选中节点及其所有子节点*/ int childCount = parentNode.Nodes.Count; for (int i = 0; i 0) DeleteTreeNode(childNode); else DeleteNodeData(childNode); childNode.Remove();

26、 if (parentNode.Nodes.Count = 0) DeleteNodeData(parentNode); parentNode.Remove(); /*方法二:删除选中节点及其所有子节点*/ /TreeNodeCollection treeNodeCollection = parentNode.Nodes; /int count = treeNodeCollection.Count; /for (int i = 0; i 0) / / DeleteTreeNode(node); / / else / / DeleteNodeData(node); / node.Remove(); / / /if (treeNodeCollection.Count = 0) / / DeleteNodeData(parentNode); / parentNode.Remove(); / / summ

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1