📄 cdatabase.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 + -