现在的位置: 首页 > 综合 > 正文

daab 3.1使用笔记

2012年12月02日 ⁄ 综合 ⁄ 共 2542字 ⁄ 字号 评论关闭
 

相信很多人使用过Microsoft Data Application Blocks,在以前的版本中(3.0之前),都是通过SqlHelper类来实现,适用SQLServer数据库,如果使用其他数据库,就需要重新写一个,很麻烦,PetShop3.0中就是另外写了一个OraHelper来实现Oracle数据库的操作,在3.1版中这种情况可不再有了。

可以到gotdotnet下载,具体地址不记得了。

DAAB3.1
连NameSpace也改了:GotDotNet.ApplicationBlocks.Data,通过一个通用类AdoHelper实现了SqlServer, Oracle, OleDB, ODBC不同类型的连接,由AdoHelper自动选择合适的数据库连接类来连接,当你在不同数据库间切换时,可以在只修改配置文件不改动代码的情况下实现数据库的转换。

在配置文件中可以这样配置:

 <configSections> 

  
<section name="daabProviders" type="GotDotNet.ApplicationBlocks.Data.DAABSectionHandler, GotDotNet.ApplicationBlocks.Data"> 

  
</section> 

 
</configSections> 


 
<daabProviders> 

  
<daabProvider alias="misapp" assembly="GotDotNet.ApplicationBlocks.Data" type="GotDotNet.ApplicationBlocks.Data.SqlServer" /> 

 
</daabProviders> 

代码中只要使用(vb)

Dim adoHelper As AdoHelper = AdoHelper.CreateHelper("misapp"


即可创建AdoHelper的一个实例,以后如果数据库改为Oracle,只需将配置文件中连接串相应修改,同时将daabProviders一节改为以下内容即可,如果使用的是标准sql语句,代码中不需任何修改。 

 <daabProviders> 

  
<daabProvider alias="misapp" assembly="GotDotNet.ApplicationBlocks.Data" type="GotDotNet.ApplicationBlocks.Data.Oracle" /> 

 
</daabProviders>

 

如果不使用别名,则要在实例化AdoHelper时指定所的数据库类型,如(vb) 

Dim sqlHelper As AdoHelper = AdoHelper.CreateHelper(GetType(SqlServer).Assembly.FullName, GetType(SqlServer).FullName)




Dim sqlHelper As AdoHelper = AdoHelper.CreateHelper("GotDotNet.ApplicationBlocks.Data, GotDotNet.ApplicationBlocks.Data.SqlServer) 


接下来的使用就很简单了(C#AspNetPager示例,AspNetPager是WebDiyer的分页控件:http://www.webdiyer.com)

  private void Page_Load(object sender, System.EventArgs e) 

  


   AdoHelper helper 
= AdoHelper.CreateHelper("misapp"); 

    

   
string connString = System.Configuration.ConfigurationSettings.AppSettings["connString"]; 

   
if(!Page.IsPostBack) 

   


    AspNetPager1.RecordCount
=(int)helper.ExecuteScalar(connString,System.Data.CommandType.Text,"select count(*) from orders"); 

    BindData(); 

   }
 

  }
 


  
void BindData() 

  


   AdoHelper helper 
= AdoHelper.CreateHelper("misapp"); 

   
string connString = System.Configuration.ConfigurationSettings.AppSettings["connString"]; 

   IDataParameter[] para 
= new IDataParameter[2]; 

   para 
= helper.GetSpParameterSet(connString,"mypager"); 

    

//   mypager为获取分页数据的存储过程 

   para[0].Value=AspNetPager1.PageSize; 

   para[
1].Value=AspNetPager1.CurrentPageIndex; 


   DataGrid1.DataSource
=helper.ExecuteReader(connString,"mypager",para); 

    

   DataGrid1.DataBind(); 

  }
 

  
public void AspNetPager1_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e) 

  


   AspNetPager1.CurrentPageIndex
=e.NewPageIndex; 

   BindData(); 

  }
 


上面这段代码不需任何修改即可改为Oracle上的应用(数据库中的存储过程还是要改的,配置文件要改一下)

【上篇】
【下篇】

抱歉!评论已关闭.