一、建立数据库类
- class Dbbuild
- {
- private OleDbConnection db_conn;// = new OleDbConnection();
- private OleDbCommand db_cmd = new OleDbCommand();
- private OleDbDataAdapter db_adp;
- private DataSet db_ds;
- /// <summary>
- /// 打开数据库连接
- /// </summary>
- public void OpenDbConn()
- {
- CheckDbConn();
- }
- /// <summary>
- /// 检查连接
- /// </summary>
- /// <returns></returns>
- public bool CheckDbConn()
- {
- try
- { //连接到数据库
- db_conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..//..//DataBase//mezhx_db.mdb");
- db_cmd.Connection = db_conn;//建立连接
- db_conn.Open();//打开连接
- }
- catch (Exception ex)
- {
- System.Console.WriteLine(ex);
- return false;
- }
- return true;
- }
- /// <summary>
- /// 关闭数据库
- /// </summary>
- public void CloseDbConn()
- {
- if (db_conn.State == ConnectionState.Open)
- {
- db_conn.Close();
- }
- db_conn.Dispose();
- db_cmd.Dispose();
- }
- /// <summary>
- /// 返回Table数据表
- /// </summary>
- /// <param name="sqlText">传入的SQL语句</param>
- /// <returns></returns>
- public DataTable GetDaTable(string sqlText)
- {
- db_adp = new OleDbDataAdapter();
- db_ds = new DataSet();
- db_ds.Clear();
- try
- {
- OpenDbConn();//打开数据库连接
- db_cmd.CommandType = CommandType.Text;
- db_cmd.CommandText = sqlText;
- db_adp.SelectCommand = db_cmd;
- db_adp.Fill(db_ds, "db_Table");
- }
- catch (Exception ex1)
- {
- System.Console.WriteLine(ex1);
- }
- finally
- {
- db_adp.Dispose();
- CloseDbConn();
- }
- return db_ds.Tables["db_Table"];
- }
- }
二、操作方法
- /// <summary>
- /// 创建方法
- /// </summary>
- private void CreateTreeView()
- {
- try
- {
- DataTable dbTable = new DataTable();论
- string dbsql = "Select * From Me_Menu";
- dbTable = dbbuild.GetDaTable(dbsql);
- //将第一级菜单取出生成TreeView的节点,作为递归运算的入口
- CreateTreeViewRecursive(treeView1.Nodes, dbTable, 0);
- }
- catch (Exception dbex)
- {
- System.Console.WriteLine(dbex);
- }
- }
- /// <summary>
- /// 递归查询
- /// </summary>
- /// <param name="nodes">TreeView节点集合</param>
- /// <param name="dataSource">数据源</param>
- /// <param name="parentid">上一级菜单节点标识码</param>
- private void CreateTreeViewRecursive(TreeNodeCollection nodes, DataTable dataSource, int parentid)
- {
- string filter;
- filter = string.Format("Menu_ParentId={0}", parentid);
- DataRow[] drarr = dataSource.Select(filter);
- TreeNode node;
- foreach (DataRow dr in drarr)
- {
- node = new TreeNode();
- node.Text = (string)dr["Menu_Name"];
- node.Tag = (int)dr["Menu_Id"];
- nodes.Add(node);
- CreateTreeViewRecursive(node.Nodes, dataSource, (int)node.Tag);
- }
- }
本文介绍如何在WinForm应用中通过数据库类`Dbbuild`动态绑定`TreeView`控件的数据。首先,文章展示了如何打开、检查和关闭数据库连接。接着,详细说明了如何使用`OleDbDataAdapter`获取数据表,并填充到`DataSet`中,以供`TreeView`显示。整个过程通过执行SQL语句实现数据过滤和选择。
904

被折叠的 条评论
为什么被折叠?



