基于ODP的数据层基类C#源码
2009-07-21 20:35
281 查看
#region using
using System;
using System.Configuration;
using System.Data;
using Oracle.DataAccess.Client;
#endregion
namespace WIS.Base.Data
{
/// <summary>
/// <table style="font-size:12px">
/// <tr><td><b>文 件 名</b>:DbObject.cs</td></tr>
/// <tr><td><b>功能描述</b>:数据层基类,提供对底层数据的基本操作</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 xchuntao@163.com qq:23106676</td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table>
/// </summary>
public class DbObject
{
#region 成员变量
/// <summary>
/// <table style="font-size:12px">
/// <tr><td><b>功能描述</b>:Oracle数据连接对象</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table>
/// </summary>
protected OracleConnection Connection;
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:数据连接字符串</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
private string connectionString;
#endregion
#region 构造函数
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:构造函数,使用配置文件中的默认数据连接字符串ConnectionString,初始化数据连接对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
public DbObject()
{
connectionString = ConfigurationSettings.AppSettings.Get("ConnectionString");//从Web.Config中取得的连接字符串
Connection = new OracleConnection(connectionString);
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:构造函数,根据指定的数据连接字符串,初始化数据连接对象</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="newConnectionString">数据连接字符串</param>
public DbObject( string newConnectionString )
{
connectionString = newConnectionString;
Connection = new OracleConnection( connectionString );
}
#endregion
#region 私有方法
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:创建一个OracleCommand对象,用于生成OracleDataReader </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <returns>OracleCommand对象</returns>
private OracleCommand BuildCommand(string storedProcName, IDataParameter[] parameters)
{
OracleCommand command = new OracleCommand( storedProcName, Connection );
command.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add( parameter );
}
return command;
}
#endregion
#region 运行存储过程
/// <summary>
/// <table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,获取影响行数,返回存储过程运行结果 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table>
/// </summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <param name="rowsAffected">出参:执行存储过程所影响的记录行数</param>
/// <returns>存储过程的运行结果</returns>
public object RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
object result;
//if(Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = BuildCommand( storedProcName, parameters );
rowsAffected = command.ExecuteNonQuery();
//如果有"ReturnValue"参数则返回值,否则返回null
bool blnHasReturn = false;
for (int i=0;i<parameters.Length;i++)
{
if (parameters[i].Direction == ParameterDirection.ReturnValue)
{
blnHasReturn = true;
break;
}
}
if (blnHasReturn)
result = command.Parameters["ReturnValue"].Value;
else
result = null;
Connection.Close();
return result;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,返回产生的OracleDataReader对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <returns>OracleDataReader对象</returns>
public OracleDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
OracleDataReader returnReader;
Connection.Open();
OracleCommand command = BuildCommand( storedProcName, parameters );
command.CommandType = CommandType.StoredProcedure;
returnReader = command.ExecuteReader();
//connection.Close();
return returnReader;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,创建一个DataSet对象,
/// 将运行结果存入指定的DataTable中,返回DataSet对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <param name="tableName">数据表名称</param>
/// <returns>DataSet对象</returns>
public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
DataSet dataSet = new DataSet();
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = BuildCommand( storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
return dataSet;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,将运行结果存入已有DataSet对象的指定表中,无返回值 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <param name="dataSet">DataSet对象</param>
/// <param name="tableName">数据表名称</param>
public void RunProcedure(string storedProcName, IDataParameter[] parameters, DataSet dataSet, string tableName )
{
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = BuildCommand( storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
}
#endregion
#region 运行SQL语句
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行与写数据库相关的SQL语句,返回影响行数 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>影响行数</returns>
public int ExecNonQuery(string sqlString)
{
int RowAffected;
//if(Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = new OracleCommand( sqlString, Connection );
RowAffected = command.ExecuteNonQuery();
Connection.Close();
return RowAffected;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,返回OracleDataReader对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>SqlDataReader对象</returns>
public OracleDataReader ExecSqlString(string sqlString)
{
OracleDataReader returnReader;
//if(Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = new OracleCommand( sqlString, Connection );
returnReader = command.ExecuteReader();
//connection.Close();
return returnReader;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,返回DataSet对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="string">SQL语句</param>
/// <param name="tableName">数据表名称</param>
/// <returns>DataSet对象</returns>
public DataSet ExecSqlString(string sqlString, string tableName )
{
DataSet dataSet = new DataSet();
//if (Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = new OracleCommand( sqlString, Connection );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
return dataSet;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,将运行结果存入已有DataSet对象的指定表中,无返回值 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <param name="dataSet">DataSet对象</param>
/// <param name="tableName">数据表名称</param>
public void ExecSqlString(string sqlString, DataSet dataSet, string tableName )
{
//if (Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = new OracleCommand( sqlString, Connection );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,返回查询结果的第一行的第一列,忽略其它行或列 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>影响行数</returns>
public object ExecScalar(string sqlString)
{
object returnScalar;
//if (Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = new OracleCommand( sqlString, Connection );
returnScalar = command.ExecuteScalar();
//Connection.Close();
return returnScalar;
}
#endregion
#region 关闭数据连接
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:关闭数据连接 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
public void Close()
{
if(Connection.State.ToString() == "Open")
Connection.Close();
}
#endregion
#region 析构函数
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:析构函数,善后处理,释放数据连接 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
~DbObject()
{
if(Connection.State.ToString() == "Open")
Connection.Close();
Connection.Dispose();
}
#endregion
}
}
using System;
using System.Configuration;
using System.Data;
using Oracle.DataAccess.Client;
#endregion
namespace WIS.Base.Data
{
/// <summary>
/// <table style="font-size:12px">
/// <tr><td><b>文 件 名</b>:DbObject.cs</td></tr>
/// <tr><td><b>功能描述</b>:数据层基类,提供对底层数据的基本操作</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 xchuntao@163.com qq:23106676</td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table>
/// </summary>
public class DbObject
{
#region 成员变量
/// <summary>
/// <table style="font-size:12px">
/// <tr><td><b>功能描述</b>:Oracle数据连接对象</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table>
/// </summary>
protected OracleConnection Connection;
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:数据连接字符串</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
private string connectionString;
#endregion
#region 构造函数
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:构造函数,使用配置文件中的默认数据连接字符串ConnectionString,初始化数据连接对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
public DbObject()
{
connectionString = ConfigurationSettings.AppSettings.Get("ConnectionString");//从Web.Config中取得的连接字符串
Connection = new OracleConnection(connectionString);
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:构造函数,根据指定的数据连接字符串,初始化数据连接对象</td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="newConnectionString">数据连接字符串</param>
public DbObject( string newConnectionString )
{
connectionString = newConnectionString;
Connection = new OracleConnection( connectionString );
}
#endregion
#region 私有方法
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:创建一个OracleCommand对象,用于生成OracleDataReader </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <returns>OracleCommand对象</returns>
private OracleCommand BuildCommand(string storedProcName, IDataParameter[] parameters)
{
OracleCommand command = new OracleCommand( storedProcName, Connection );
command.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add( parameter );
}
return command;
}
#endregion
#region 运行存储过程
/// <summary>
/// <table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,获取影响行数,返回存储过程运行结果 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table>
/// </summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <param name="rowsAffected">出参:执行存储过程所影响的记录行数</param>
/// <returns>存储过程的运行结果</returns>
public object RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
object result;
//if(Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = BuildCommand( storedProcName, parameters );
rowsAffected = command.ExecuteNonQuery();
//如果有"ReturnValue"参数则返回值,否则返回null
bool blnHasReturn = false;
for (int i=0;i<parameters.Length;i++)
{
if (parameters[i].Direction == ParameterDirection.ReturnValue)
{
blnHasReturn = true;
break;
}
}
if (blnHasReturn)
result = command.Parameters["ReturnValue"].Value;
else
result = null;
Connection.Close();
return result;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,返回产生的OracleDataReader对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <returns>OracleDataReader对象</returns>
public OracleDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
OracleDataReader returnReader;
Connection.Open();
OracleCommand command = BuildCommand( storedProcName, parameters );
command.CommandType = CommandType.StoredProcedure;
returnReader = command.ExecuteReader();
//connection.Close();
return returnReader;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,创建一个DataSet对象,
/// 将运行结果存入指定的DataTable中,返回DataSet对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <param name="tableName">数据表名称</param>
/// <returns>DataSet对象</returns>
public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
DataSet dataSet = new DataSet();
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = BuildCommand( storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
return dataSet;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行存储过程,将运行结果存入已有DataSet对象的指定表中,无返回值 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">存储过程的参数对象列表(数组)</param>
/// <param name="dataSet">DataSet对象</param>
/// <param name="tableName">数据表名称</param>
public void RunProcedure(string storedProcName, IDataParameter[] parameters, DataSet dataSet, string tableName )
{
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = BuildCommand( storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
}
#endregion
#region 运行SQL语句
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行与写数据库相关的SQL语句,返回影响行数 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>影响行数</returns>
public int ExecNonQuery(string sqlString)
{
int RowAffected;
//if(Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = new OracleCommand( sqlString, Connection );
RowAffected = command.ExecuteNonQuery();
Connection.Close();
return RowAffected;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,返回OracleDataReader对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>SqlDataReader对象</returns>
public OracleDataReader ExecSqlString(string sqlString)
{
OracleDataReader returnReader;
//if(Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = new OracleCommand( sqlString, Connection );
returnReader = command.ExecuteReader();
//connection.Close();
return returnReader;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,返回DataSet对象 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="string">SQL语句</param>
/// <param name="tableName">数据表名称</param>
/// <returns>DataSet对象</returns>
public DataSet ExecSqlString(string sqlString, string tableName )
{
DataSet dataSet = new DataSet();
//if (Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = new OracleCommand( sqlString, Connection );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
return dataSet;
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,将运行结果存入已有DataSet对象的指定表中,无返回值 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <param name="dataSet">DataSet对象</param>
/// <param name="tableName">数据表名称</param>
public void ExecSqlString(string sqlString, DataSet dataSet, string tableName )
{
//if (Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleDataAdapter sqlDA = new OracleDataAdapter();
sqlDA.SelectCommand = new OracleCommand( sqlString, Connection );
sqlDA.Fill( dataSet, tableName );
Connection.Close();
}
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:运行SQL语句,返回查询结果的第一行的第一列,忽略其它行或列 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>影响行数</returns>
public object ExecScalar(string sqlString)
{
object returnScalar;
//if (Connection.State.ToString() == "Closed") Connection.Open();
Connection.Open();
OracleCommand command = new OracleCommand( sqlString, Connection );
returnScalar = command.ExecuteScalar();
//Connection.Close();
return returnScalar;
}
#endregion
#region 关闭数据连接
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:关闭数据连接 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
public void Close()
{
if(Connection.State.ToString() == "Open")
Connection.Close();
}
#endregion
#region 析构函数
/// <summary><table style="font-size:12px">
/// <tr><td><b>功能描述</b>:析构函数,善后处理,释放数据连接 </td></tr>
/// <tr><td><b>创 建 人</b>:夏春涛 </td></tr>
/// <tr><td><b>创建时间</b>:2005-05-28 </td></tr>
/// </table></summary>
~DbObject()
{
if(Connection.State.ToString() == "Open")
Connection.Close();
Connection.Dispose();
}
#endregion
}
}
相关文章推荐
- 基于ODP的数据层基类C#源码
- 基于ODP的数据层基类C#源码
- 基于SQLServer的数据层基类C#源码
- C# 基于MySQL的数据层基类(MySQLHelper)
- C# 基于MySQL的数据层基类(MySQLHelper)
- C# 基于MySQL的数据层基类(MySQLHelper)
- 从分析家中得到股票数据!C#源码 (代码很长,建议火狐)
- 极限挑战—C#+ODP 100万条数据导入Oracle数据库仅用不到1秒
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台一(C#开发)-系统功能介绍及展示
- C#中利用ODP实现瞬间导入百万级数据详解
- 基于rt-thread+lwip分析数据是怎么从网卡芯片接收数据到pbuf的(lwip源码解析一)
- 打造最漂亮的串口调试助手(基于WPF + .NET C# VS2013)附源码!
- 大数据IMF传奇行动绝密课程第85课:基于HDFS的SparkStreaming案例实战和内幕源码解密
- 【开源下载】基于winform的xml菜单编辑器(c#源码)
- 浅析基于ASP.NET网页的C#数据采集
- C# 网站数据采集网易NBA列表页面数据(新闻首页)源码
- 基于storm的实时GPS数据客流特征分析系统 源码分析之(一):GPSReceiverSpout
- 【商业版、提供全部源码】基于RBAC的C#ASP.NET支持多用户的通用权限管理系统高质量源码10月份销售20套
- 【转】【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
- SqlLiteHelper:基于C#的SqlLite数据库访问基类