桂林网站建设
您的位置: 首页> ADO.net

我要叫喊

学习本类知识需要注意某些知识点,它们之间有些关联

      技术文档
      本站业务
      本类热点
  1. 数据库记录的添...
  2. 取dataview中的行...
  3. 用多活动结果集...
  4. ADO.NET实现应...
  5. ADO.NET2.0的十...
  6. 使用ADO.NET的...
  7. ADO.NET实用经...
  8. 深入分析ADO.N...
  9. ADO.NET的开发...
  10. ADO.NET中的多...
一个有 Reader以及DataSet的DataSource扩展类(陈文利)

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

       }
}