//一个有 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;
                  
               }
       
           }

       }
}

posted on 2007-09-13 16:55  罗明超  阅读(171)  评论(0)    收藏  举报