//一个有 Reader以及DataSet的DataSource扩展类(原创)
using System.Web;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System;
namespace UFishing.DAL
{
//程序设计:陈文利
//QQ:36055915 msn:sinofishing@hotmail.com
public class AccessDataBase:AccessDataSource
{
public AccessDataBase()
{
this.DataFile = @"E:\2007pro\UFishing\UFishing\UFishing.Web\App_Data\WebData.mdb";
}
OleDbConnection conn;
/// <summary>
/// 返回SqlReader
/// </summary>
/// <param name="SqlString"></param>
/// <param name="SqlReader"></param>
public void getReader(out OleDbDataReader SqlReader)
{
SqlReader =null;
conn = new OleDbConnection(this.ConnectionString);
try
{
conn.Open();
OleDbCommand comm = new OleDbCommand(this.SelectCommand,conn);
if (this.SelectParameters.Count > 0)
{
foreach (Parameter parameter in this.SelectParameters)
{
OleDbParameter oleDBParameter = new OleDbParameter();
oleDBParameter = ChangeToOleDbParameter(parameter);
comm.Parameters.Add(oleDBParameter);
}
}
SqlReader = comm.ExecuteReader();
//conn.Close();
}
catch (Exception ex) { throw ex; }
}
public DataSet ReturnDataSet()
{
conn = new OleDbConnection(this.ConnectionString);
try
{
OleDbCommand comm = new OleDbCommand(this.SelectCommand, conn);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = comm;
DataSet ds = new DataSet();
if (this.SelectParameters.Count> 0)
{
foreach( Parameter parameter in this.SelectParameters)
{
OleDbParameter oleDBParameter=new OleDbParameter();
oleDBParameter= ChangeToOleDbParameter(parameter);
comm.Parameters.Add(oleDBParameter);
}
}
da.Fill(ds);
return ds;
}
catch (Exception ex) { throw ex; }
}
/// <summary>
/// 把parameter参数转变为OleDbParameter
/// </summary>
/// <param name="parameter"></param>
/// <returns></returns>
private OleDbParameter ChangeToOleDbParameter(Parameter parameter)
{
OleDbParameter oleParameter = new OleDbParameter();
oleParameter.ParameterName = parameter.Name;
oleParameter.OleDbType = ChangeOleDBTyle(parameter.Type);
oleParameter.Value = parameter.DefaultValue;
return oleParameter;
}
/// <summary>
/// 类型转换
/// </summary>
/// <param name="?"></param>
/// <returns></returns>
private OleDbType ChangeOleDBTyle(TypeCode typeCode)
{
switch (typeCode)
{
case TypeCode.String:
return OleDbType.VarChar;
case TypeCode.Int32:
return OleDbType.Integer;
case TypeCode.Double:
return OleDbType.Double;
default:
return OleDbType.VarChar;
}
}
}
}
浙公网安备 33010602011771号