⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 accessexplorer.cs

📁 这是用C#数据库编程的实例
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Drawing;
using System.Collections;
//插入集合库
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
//插入数据库处理库
using System.Data.OleDb;
//插入OleDb处理库



namespace databrowser
{
	/// <summary>
	/// AccessExplorer 的摘要说明。
	/// </summary>
	public class AccessExplorer : System.Windows.Forms.Form
	{
		private System.Windows.Forms.TreeView treeView1;
		private System.Windows.Forms.ContextMenu contextMenu1;
		private System.Windows.Forms.ListView listView1;
		private System.ComponentModel.IContainer components;

		public AccessExplorer()
		{
			InitializeComponent();
		}
		public AccessExplorer(ref String userName,ref String password
			,ref String database,ref String SQLServer)
		{
			//重载构造函数
			InitializeComponent();
			//初始化组件
			//以下取得数据库链接变量
			m_userName = userName;
			m_password = password;
			m_database = database;
			m_SQLServer = SQLServer;
		}
		//以下定义了数据库链接变量
		private String m_userName;
		//存放用户名称
		private String m_password;
		//存放密码
		private String m_database;
		//存放数据库地址
		private String m_SQLServer;
		//存放SQLServer链接信息
		private String m_sConnectString;
		//存放链接
		private DataSet myTableData=new DataSet();
		//存放表单集合
		private DataSet myViewsData=new DataSet();
		//存放表单属性集合
		private DataSet myStoredProcData =new DataSet();
		//存放存储过程
		public String ConnectionString
		{
			//定义只读链接属性
			get
			{
				return m_sConnectString;
				//取得链接字符串
			}
			set
			{
				m_sConnectString=value;
			}
		}
		public bool buildTreeView()
		{
			//建立树查看对象
			bool connectedFlag=false;
			//建立链接标志
			CAccessDatabase database=new CAccessDatabase();
			//建立一个自己定义的Access数据库类
			String connString="Provider=Microsoft.Jet.OLEDB.4.0;" +
				"Data Source=" + m_database + ";" +
					"Jet OLEDB:System database=" + m_SQLServer 
				+ ";User ID =" + m_userName + ";Password =" + m_password + ";";
			//建立一个数据库链接字符串
			m_sConnectString = connString;
			//取得链接字符串的值
			database.connectString = connString;
			//赋值给数据库对象
			connectedFlag = database.Connect();
			//进行链接
			if(connectedFlag)
			{
				//如果链接成功
				TreeNode myRootNode=new TreeNode(this.m_database);
				//建立树的根节点为数据库对象
				bool successFlag=false;
				//建立标志
				successFlag = database.myDatabaseTables(ref myTableData);
				//取得表单集合
				if(successFlag)
				{
					//成功的取得了表单
					ArrayList myArrayList=new ArrayList();
					//建立列表对象				
					foreach(DataTable myTable in myTableData.Tables)
					{
						//对每一个表单进行操作
						TreeNode myTableName=new TreeNode();
						//定义节点变量
						myTableName.Text = myTable.TableName.ToString();
						//取得表单名称
						myArrayList.Add(myTableName);
						//列表自己节点
					}//foreach
					int iArrayCount= myArrayList.Count;
					//取得节点数目
					TreeNode [] myTables=new TreeNode[iArrayCount];
					//定义一个节点数组
					myArrayList.CopyTo(myTables);
					//用节点数组取得表单名称
					TreeNode myTableNameNode=new TreeNode("Tables", myTables);
					//建立一个名称为"Tables"的节点
					myRootNode.Nodes.Add(myTableNameNode);
					//增加表单到节点到根结点
				}//if
				OleDbDataReader myDataReader=null;
				//建立数据库读取对象
				successFlag = database.GetQueries(ref myDataReader);
				//取得查询
				if(successFlag)
				{
					//如果成功的取得了查询
					ArrayList myArrayList= new ArrayList();
					//建立列表对象
					while(myDataReader.Read())
					{
						//读取所有查询
						TreeNode myTableName=new TreeNode();
						//建立一个查询节点
						myTableName.Text = 
							myDataReader.GetValue(0).ToString();
						//取得查询的名称
						myArrayList.Add(myTableName);
						//在列表中增加查询名称
					}//while
					myDataReader.Close();
					//关闭数据读取对象
					int iArrayCount=myArrayList.Count;
					//取得查询数量
					TreeNode [] myTables= new TreeNode[iArrayCount];
					//建立节点集合
					myArrayList.CopyTo(myTables);
					//取得查询名称
					TreeNode myTableNameNode= new TreeNode("Queries", myTables);
					//建立一个查询节点
					myRootNode.Nodes.Add(myTableNameNode);
					//增加查询节点到根节点
				}//if
				successFlag = database.GetForms(ref myDataReader);
				//取得窗体
				if(successFlag)
				{
					//如果成功的取得了窗体
					ArrayList myArrayList=new ArrayList();
					//定义列表对象
					while(myDataReader.Read())
					{
						//读取所有窗体
						TreeNode myTableName= new TreeNode();
						//建立节点
						myTableName.Text = myDataReader.GetValue(0).ToString();
						//取得窗体的名称
						myArrayList.Add(myTableName);
						//将窗体的名称增加到列表里面
					}//while
					myDataReader.Close();
					//关闭数据读取对象
					int iArrayCount= myArrayList.Count;
					//取得窗体数目
					TreeNode [] myTables=new TreeNode[iArrayCount];
					//建立节点集合
					myArrayList.CopyTo(myTables);
					//拷贝列表内容到节点集合
					TreeNode myTableNameNode=new TreeNode("Forms", myTables);
					//建立form节点
					myRootNode.Nodes.Add(myTableNameNode);
					//将form节点增加到根节点

				}//if
				successFlag = database.GetReports(ref myDataReader);
				//读取报表
				if(successFlag)
				{
					//读取成功
					ArrayList myArrayList=new ArrayList();
					//建立列表对象
					while(myDataReader.Read())
					{
						//读取所有报表
						TreeNode myTableName=new TreeNode();
						//建立新节点
						myTableName.Text = myDataReader.GetValue(0).ToString();
						//取得报表名称
						myArrayList.Add(myTableName);
						//将报表名称增加到列表里
					}
					myDataReader.Close();
					//关闭数据库读取对象
					int iArrayCount=myArrayList.Count;
					//取得报表数量
					TreeNode [] myTables=new TreeNode[iArrayCount];
					//定义节点数组
					myArrayList.CopyTo(myTables);
					//将列表中的报表名称拷贝到节点数组
					TreeNode myTableNameNode=
						new TreeNode("Reports", myTables);
					//建立报表节点
					myRootNode.Nodes.Add(myTableNameNode);
					//将报表节点增加到根节点
				}//if
				successFlag = database.GetMacros(ref myDataReader);
				//读取宏
				if(successFlag)
				{
					//如果读取成功
					ArrayList myArrayList =new ArrayList();
					//建立列表对象
					while(myDataReader.Read())
					{
						//读取所有宏
						TreeNode myTableName=new TreeNode();
						//建立新节点
						myTableName.Text = myDataReader.GetValue(0).ToString();
						//取得宏的名称
						myArrayList.Add(myTableName);
						//将宏的名称增加到列表对象
					}
					myDataReader.Close();
					//关闭数据读取对象
					int iArrayCount=myArrayList.Count;
					//取得宏的数量
					TreeNode [] myTables=new TreeNode[iArrayCount];
					//建立节点数组
					myArrayList.CopyTo(myTables);
					//拷贝宏名称道节点数组
					TreeNode myTableNameNode =new TreeNode("Macros", myTables);
					//建立宏节点
					myRootNode.Nodes.Add(myTableNameNode);
					//将宏节点增加到根结点
				}
				successFlag = database.GetModules(ref myDataReader);
				//取得模块
				if(successFlag)
				{
					//如果取得成功
					ArrayList myArrayList =new ArrayList();
					//建立列表对象
					while(myDataReader.Read())
					{
						//读取所有模块
						TreeNode myTableName=new TreeNode();
						//建立新节点
						myTableName.Text = myDataReader.GetValue(0).ToString();
						//取得模块名称

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -