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

📄 cdatabase.cs

📁 这是用C#数据库编程的实例
💻 CS
字号:
using System;
//引入系统库
using System.Data;
//引入数据库对象库
using System.Data.OleDb;
//引入ado对象库
using System.Collections;
//引入集合对象库
using System.Windows.Forms;
//引入窗体对象

namespace databrowser
{
	/// <summary>
	/// CDatabase 的摘要说明。
	/// </summary>
	public class CDatabase
	{
		public CDatabase()
		{
			//构造函数
			//显示类创建信息
			MessageBox.Show("创建了新的SQL数据库"
				,"创建新的类",MessageBoxButtons.OK);
		}
		public CDatabase(String strConnect)
		{
			//重载构造函数
			m_strConnect = strConnect;
			//取得链接字符串
		}
		//定义数据库链接变量
		private String m_strConnect="";
		//定义一个数据库链接字符串
		private OleDbConnection myConnection=null;
		//定义一个数据库链接对象
		private String mySQL="";
		//定义一个查询字符串
		private bool myConnectFlag=false;
		//定义一个链接结果标志
		public String connectString
		{
			//定义一个链接字符串属性
			get
			{
				//取得链接字符串
				return m_strConnect;
			}
			set
			{
				//设置链接字符串
				m_strConnect = value;
			}
		}
		public bool Connect()
		{
			//定义数据库链接函数
			try
			{
				myConnection = new OleDbConnection(m_strConnect);
				//建立新的链接对象
				myConnection.Open();
				//打开链接
				myConnectFlag =true;
				//标记链接成功
			}
			catch(Exception e)
			{
				//如果链接失败反馈信息
				Console.WriteLine(e.ToString());
			}
			return myConnectFlag;
			//返回链接标志
		}
		private bool GetTables(ref OleDbDataReader myDataReader)
		{
			//定义取得表单函数
			OleDbDataReader mylocalDataReader=null;
			//定义数据读取对象
			bool mySuccessFlag=false;
			//定义链接标志
			//尝试进行读取数据
			try
			{
				if(myConnectFlag)
				{
					//如果链接成功
					mySQL = "SELECT Name FROM SysObjects WHERE Type='U' ";
					//设置查询语句
					OleDbCommand myCommand = 
						new OleDbCommand(mySQL, myConnection);
					//定义命令对象
					mylocalDataReader = myCommand.ExecuteReader();
					//执行数据读取
					mySuccessFlag =true;
					//标志读取成功				
				}				
			}
			catch(Exception e)
			{
				//出现异常,反馈信息
				Console.WriteLine(e.ToString());
			}
			myDataReader = mylocalDataReader;
			//取得数据读取对象
			return mySuccessFlag;
			//返回读取标志
		}
		public bool myDatabaseTables(ref DataSet myTableDataSet)
		{
			//取得表单集合
			DataSet myLocalTableDataSet=new DataSet();
			//定义DataSet对象
			bool mySuccessFlag=false;
			//定义操作标志
			try
			{
				if(myConnectFlag)
				{
					//如果链接成功
					OleDbDataReader myDataReader=null;
					//定义数据读取对象
					bool successFlag=false;
					//先将标志设置为假
					successFlag = GetTables(ref myDataReader);
					//取得表单
					if(successFlag)
					{
						//如果成功的取得了表单
						ArrayList myArrayList=new ArrayList();
						//定义一个数据列表对象
						//以下列举所以表单名称
						while(myDataReader.Read())
						{
							//读取数据
							String myTableName="";
							//定义表单名称字符串
							myTableName =
								myDataReader.GetValue(0).ToString();
							//取得表单名称
							myArrayList.Add(myTableName);
							//增加表单名称
						}//while
						myDataReader.Close();
						//关闭数据读取对象
						int iArrayCount=myArrayList.Count;
						//取得表单数量
						String [] myTableArray=new String[iArrayCount];
						//定义表单名称数组
						myArrayList.CopyTo(myTableArray);
						//取得表单名称
						int i;
						for(i=0;i<iArrayCount ;i++)
						{
							String tblName;
							//取得表单名称
							tblName = myTableArray[i];
							//取得表单名称
							mySQL = "sp_help " + "[" + tblName + "]";
							//建立查询
							OleDbCommand myCommand= 
								new OleDbCommand(mySQL, myConnection);
							//建立查询命令
							OleDbDataAdapter myDataSetCommand=
								new OleDbDataAdapter(myCommand);
							//建立Dataset查询命令
							myDataSetCommand.Fill(myLocalTableDataSet, tblName);
							//取得表单集合
						}//for
						myTableDataSet = myLocalTableDataSet;
						//取得表单集合
						mySuccessFlag = true;
						//设置链接标志
					}//if
				}//if
			}//try
			catch(Exception e)
			{
				Console.WriteLine(e.ToString());
				//反馈异常信息
			}
			myTableDataSet = myLocalTableDataSet;
			//取得表单集合
			return mySuccessFlag;
			//返回标志
		}
		private bool GetViews(ref OleDbDataReader myDataReader)
		{
			//定义一个取得查看得函数
			OleDbDataReader mylocalDataReader=null;
			//定义数据库读取对象
			bool mySuccessFlag=false;
			//建立操作标志
			try
			{
				mySQL = "SELECT * FROM SysObjects WHERE Type='V' ";
				//建立查询
				OleDbCommand myCommand=new OleDbCommand(mySQL, myConnection);
				//建立命令
				mylocalDataReader = myCommand.ExecuteReader();
				//执行查询
				myDataReader = mylocalDataReader;
				//取得数据
				mySuccessFlag = true;
				//设置标志				
			}
			catch(Exception e)
			{
				Console.WriteLine(e.ToString());
				//反馈异常
			}
			myDataReader = mylocalDataReader;
			//取得数据
			return mySuccessFlag;
			//返回标志
		}
		public bool myDatabaseView(ref DataSet myTableDataSet)
		{
			//定义一个数据库查看函数
			DataSet myLocalTableDataSet=new DataSet();
			//定义一个DataSet对象
			bool mySuccessFlag=false;
			//定义一个操作标志
			try
			{
				if(myConnectFlag)
				{
					//如果链接成功
					OleDbDataReader myDataReader=null;
					//定义一个数据库读取对象
					bool successFlag=false;
					//将操作标志设置为假
					successFlag = GetViews(ref myDataReader);
					//取得Views对象
					if(successFlag)
					{
						//如果取得成功
						ArrayList myArrayList=new ArrayList();
						//定义一个列表对象
						while(myDataReader.Read())
						{
							String myTableName="";
							//取得表单名称
							myTableName = 
								myDataReader.GetValue(0).ToString();
							//取得表单名称
							myArrayList.Add(myTableName);
							//将表单名称填入列表
						}
						myDataReader.Close();
						//关闭数据读取对象
						int iArrayCount= myArrayList.Count;
						//取得表单数量
						String [] myTableArray=new String[iArrayCount];
						//定义数组,来存放表单名称
						myArrayList.CopyTo(myTableArray);
						//取得表单名称
						int i;
						for(i=0;i<iArrayCount;i++)
						{
							String tblName;
							tblName = myTableArray[i];
							//取得表单名称
							mySQL = "sp_help " + "[" + tblName + "]";
							//建立查询
							OleDbCommand myCommand = 
								new OleDbCommand(mySQL, myConnection);
							//建立命令
							OleDbDataAdapter myDataSetCommand 
								= new OleDbDataAdapter(myCommand);
							//建立数据集合命令
							myDataSetCommand.Fill(myLocalTableDataSet, tblName);
							//取得所有表单
						}//for
						myTableDataSet = myLocalTableDataSet;
						//取得所有表单
						mySuccessFlag =true;
						//设置标记
					}//if
				}//if
			}//try
			catch(Exception e)
			{
				Console.WriteLine(e.ToString());
				//反馈异常
			}
			myTableDataSet = myLocalTableDataSet;
			//取得表单集合
			return mySuccessFlag;
			//返回标志
		}
		private bool GetStoredProcs(ref OleDbDataReader myDataReader)
		{
			OleDbDataReader mylocalDataReader=null;
			//定义数据库读取对象
			bool mySuccessFlag =false;
			//设置操作标志
			try
			{
				if(myConnectFlag)
				{
					//如果链接成功
					mySQL = "SELECT * FROM SysObjects WHERE Type='P' ";
					//建立查询
					OleDbCommand myCommand= 			
						new OleDbCommand(mySQL, myConnection);
					//建立命令
					mylocalDataReader = myCommand.ExecuteReader();
					//执行命令
					myDataReader = mylocalDataReader;
					//取得数据
					mySuccessFlag = true;
					//设置标志
				}//if
			}//try
			catch(Exception e)
			{
				Console.WriteLine(e.ToString());
				//反馈异常
			}
			myDataReader = mylocalDataReader;
			//取得数据
			return mySuccessFlag;
			//返回标志
		}
		public bool myDatabaseStoredProcs(ref DataSet myTableDataSet)
		{
			//数据库存储函数
			DataSet myLocalTableDataSet=new DataSet();
			//定义数据集合对象
			bool mySuccessFlag=false;
			//定义操作成功标志
			try
			{
				if(myConnectFlag)
				{
					//如果数据库链接成功
					OleDbDataReader myDataReader=null;
					//建立数据库读取对象
					bool successFlag=false;
					//建立操作标志
					successFlag = GetStoredProcs(ref myDataReader);
					//取得存储数据
					if(successFlag)
					{
						//如果存储成功
						ArrayList myArrayList =new ArrayList();
						//建立列表对象
						while(myDataReader.Read())
						{
							//读取所有表单的名称
							String myTableName ="";
							myTableName =myDataReader.GetValue(0).ToString();
							myArrayList.Add(myTableName);
						}
						myDataReader.Close();
						//关闭数据库读取对象
						int iArrayCount=myArrayList.Count;
						//取得表单数量
						String [] myTableArray=new String[iArrayCount];
						//定义数组来存储表单名称
						myArrayList.CopyTo(myTableArray);
						//取得表单名称
						int i;
						for(i=0;i<iArrayCount;i++)
						{
							String tblName;
							tblName = myTableArray[i];
							//取得表单名称
							mySQL = "sp_help " + "[" + tblName + "]";
							//建立查询
							OleDbCommand myCommand= 
								new OleDbCommand(mySQL, myConnection);
							//建立命令
							OleDbDataAdapter myDataSetCommand =
								new OleDbDataAdapter(myCommand);
							//建立数据集合命令
							myDataSetCommand.Fill(myLocalTableDataSet, tblName);
							//取得所有表单
						}//for
					}//if
					myTableDataSet = myLocalTableDataSet;
					//取得表单集合
					mySuccessFlag = true;
					//设置操作标志
				}//if
			}//try
			catch(Exception e)
			{
				Console.WriteLine(e.ToString());
				//反馈异常
			}
			myTableDataSet = myLocalTableDataSet;
			//取得表单集合
			return mySuccessFlag;
			//返回操作标志			
		}
		public bool ExecuteSQL(String mySQL
			,ref DataSet myDataSet,ref String mySQLError)
		{
			//定义一个SQL查询执行函数
			DataSet mylocalDataSet=new DataSet();
			//定义一个DataSet对象
			String mylocalError=null;
			//定义一个错误指示变量
			bool mySuccessFlag=false;
			//定义一个标志变量
			try
			{
				if(myConnectFlag)
				{
					//如果链接成功
					OleDbCommand myCommand=
						new OleDbCommand(mySQL, myConnection);
					//定义oledb命令对象
					OleDbDataAdapter myDataSetCommand=
						new OleDbDataAdapter(myCommand);
					//定义oledbDataSet命令对象
					myDataSetCommand.Fill(mylocalDataSet, "temp");
					//取得所有数据表单
					mySuccessFlag = true;
					//设置标志
				}
				else
				{
					mylocalError = "[Connection Failed]: "
						+"Invalid Connection parameters.";
					//定义自己的异常信息
				}//if				
			}//try
			catch(OleDbException e)
			{
				foreach(OleDbError myError  in e.Errors)
				{
					mylocalError += "[Error Source]: " 
						+ myError.Source + "[Error Message]: " + myError.Message;
				}
			}			
			finally
			{
				//取得所以错误信息
				mySQLError = mylocalError;
				//取得错误信息
				myDataSet = mylocalDataSet;
				//取得DataSet对象
			}
			return mySuccessFlag;
			//返回操作标志
		}
	}
}

⌨️ 快捷键说明

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