专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 数据库连接代码:数据库分流的方法及代码 »正文

数据库连接代码:数据库分流的方法及代码

来源: 发布时间:星期五, 2008年9月26日 浏览:269次 评论:0

  04年我在制作某省高考报名系统时使用过这种方法,效果很好但是源代码是基于2003的,今天已经不大适合了.
其实方法很简单:
  1、目的:将一个大型数据库分散成几个小型的库,一方面加快查询速度,另一方面最主要的是能够将数据库服务分散到几个不同的服务器上从而增强系统的反映能力。
  2、方法:将数据库分散开,如果是连续数字的话,最好划分,例如手机号根据号段即可。身份证根据归属地,都可以。对于字符串类型的例如姓名等复杂一些,可以hash以后再想办法。
  3、实际:该方法稳定可靠,我们已经在多个系统中使用多年没有出现过问题。
  4、不足:分开的多个数据库如果需要合并统计时比较麻烦。
下边是该方法的具体代码:
1、首先应当配置Web.Config文件
<connectionStrings>
<addname=\"zy00\"connectionString=\"DataSource=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\

zhiyuan_Data.MDF;IntegratedSecurity=True;UserInstance=True\"
providerName=\"System.Data.SqlClient\"/>
<addname=\"zy01\"connectionString=\"DataSource=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\

zhiyuan_Data.MDF;IntegratedSecurity=True;UserInstance=True\"
providerName=\"System.Data.SqlClient\"/>
<addname=\"zy02\"connectionString=\"DataSource=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\

zhiyuan_Data.MDF;IntegratedSecurity=True;UserInstance=True\"
providerName=\"System.Data.SqlClient\"/>
<addname=\"zy03\"connectionString=\"DataSource=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\

zhiyuan_Data.MDF;IntegratedSecurity=True;UserInstance=True\"
providerName=\"System.Data.SqlClient\"/>
<!--
以下代码省略:说明zy00代表志愿00库,其实该库并能不使用。只是为了增强程序强壮性,如果不能正确定位其他库才转向此库操作。
剩余的其他库依次编号更在后边即可,可以有任意多个。
-->
</connectionStrings>2、一段根据传入关键字进行转向的代码。(传入的关键字中包含2位地域代码,使用该代码进行转向控制)01代表石家庄、02代表。。。
1/**////<summary>
2///根据传入的考生号来决定使用哪个数据库进行操作 [Page]
3///目前定向到市级,将来可以扩充
4///</summary>
5///<paramname=\"ksh\"/\"bmddm\"></param>
6///<returns>连接字符串</returns>
7publicstaticstringchangeconbyksh(stringksh)
8{
9/**////ksh的第5、6位为地市代码,需要根据相应的地市代码进行判断,取用相应的字符串
10///
11//为了复用该程序,在这里传入的参数可以是ksh或bmddm需要判断,总位数以及区域代码位置不同
12stringstrdishi=\"00\";
13if(ksh.Trim().Length==6)
14{
15strdishi=ksh.Trim().Substring(0,2);
16}
17else
18{
19strdishi=ksh.Substring(4,2);
20}
21//数据库前缀,本例中仅对志愿库操作。
22stringprefixes=\"zy\";
23//将要返回的连接
24stringstrcon=\"\";
25switch(strdishi)
26{
27case\"01\":
28strcon=ConfigurationManager.ConnectionStrings[prefixes+strdishi].ToString();
29break;

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: