日期:2012-08-05  浏览次数:20853 次

前些日子无聊写的一个类,针对于不同的数据库来写的。
现在还是不能说是完整的,因为还有很多功能都没有写完全。同样,在下面的代码当中也只可用于SQL和OLE两种,对于Oracle、MySql等还没有支持。当然,这类的扩展功能对其它数据库的支持只要在文件中加入那么一句就可以用了!^o^
====================================================

这里我用一个例子做源码说明:
在Web.config里加入..:

<appSettings>
<add key="sqlConnection" value="SERVER=(local);USER ID=sa;PWD=zxbbugu;DATABASE=testdatabase;CONNECT TIMEOUT=5;" />
</appSettings>


新建一个类文件:DataBaseConnec.cs

using System;
using System.Data;
using System.Configuration;

namespace Test
{
/// <summary>
/// DataBaseConnect 的摘要描述。
/// </summary>
public class DataBaseConnect
{

public string dataBaseType;
public string dataBaseName;

protected IDbConnection dataConnection;

public DataBaseConnect()
{
//
// TODO: 在這裡加入建構函式的程式碼
//
}

public IDbConnection DbConnection()
{
//判斷數據庫類型以及打開在web.config裡key所指定的數據庫。返回IDbConnection值。
switch (dataBaseType)
{
case "SQL":
dataConnection = new System.Data.SqlClient.SqlConnection(ConfigurationSettings.AppSettings[dataBaseName]);
break;
case "OLE":
dataConnection = new System.Data.OleDb.OleDbConnection(ConfigurationSettings.AppSettings[dataBaseName]);
break;
}
return dataConnection;
}
}
}


================================================

再建一個類文件:DataBaseTool.cs

using System;
using System.Data;

namespace Test
{
/// <summary>
/// DataBaseTool 的摘要描述。
/// </summary>
public class DataBaseTool
{
private IDbConnection dbConnection;
private IDbCommand cmd;
private IDataReader dataReader;
private DataBaseConnect dbConnect = new DataBaseConnect();

public DataBaseTool()
{
//
// TODO: 在這裡加入建構函式的程式碼
//
}

public void Open(string dataBaseType,string dataBaseName)
{
//成員函數,參數dataBaseType為數據庫類型,參數dataBaseName為在web.config裡的key名稱
dbConnect.dataBaseType = dataBaseType.ToUpper();
dbConnect.dataBaseName = dataBaseName;

dbConnection = dbConnect.DbConnection();
dbConnection.Open();
cmd = dbConnection.CreateCommand();
}

public void Close()
{
//鏈接關閉斷開。
cmd.Dispose();
dbConnection.Close();
dbConnection.Dispose();
}

public IDataReader GetData(string sqlString)
{
//數據查詢。返回一個DataReader值。
cmd.CommandText = sqlString;
dataReader = cmd.ExecuteReader();

return dataReader;
}

public int InsertData(string sqlString)
{
//數據插入。返回影響行數。
cmd.CommandText = sqlString;
return cmd.ExecuteNonQuery();
}

public int DeleteData(string sqlString)
{
//數據刪除。返回影響行數。
cmd.CommandText = sqlString;
return cmd.ExecuteNonQuery();
}

public int UpdateData(string sqlString)
{
//數據更新。返回影響行數。
cmd.CommandText = sqlString;
return cmd.ExecuteNonQuery();
}
}
}


==================================================

类文件建完成后便可用了!^o^
下面是简单的用法:

DataBaseTool dbTool = new DataBaseTool();   //实例化对像
dbTool.Open("SQL","sqlConnection");   //打开数据库
string sqlString = "SELECT * FROM administrator";   //定义SQL语句
DataGrid.DataSource = dbTool.GetData(sqlString);   //数据梆定到DataGrid中。
dgList.DataBind();
dbTool.Close();  //数据库关闭

====================================

在此类中还可以扩展很多东西,比如现在此类调用后只返回一个DataReader对像,还有很多没用到,比如DataTable等。