众里寻他千百度,蓦然回首,那人却在灯火阑珊处

原创 2006年05月24日 12:31:00

好在找到了一个库作三层架构的;众里寻他千百度,蓦然回首,那人却在灯火阑珊处

要作就要作企业级的系统,要学就学好的范例;

微软的petshop的架构;

看来我要好好学习啊,等着天天向上啊!//===============================================================================
// This file is based on the Microsoft Data Access Application Block for .NET

//=============================================================================== 

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using PetShop.Utility;

namespace PetShop.SQLServerDAL {

 /// <summary>
 /// The SqlHelper class is intended to encapsulate high performance,
 /// scalable best practices for common uses of SqlClient.
 /// </summary>
 public abstract class SQLHelper {
  
  //Database connection strings
  public static readonly string CONN_STRING_NON_DTC = ConnectionInfo.DecryptDBConnectionString(ConfigurationSettings.AppSettings["SQLConnString1"]);
  public static readonly string CONN_STRING_DTC_INV = ConnectionInfo.DecryptDBConnectionString(ConfigurationSettings.AppSettings["SQLConnString2"]);  
  public static readonly string CONN_STRING_DTC_ORDERS = ConnectionInfo.DecryptDBConnectionString(ConfigurationSettings.AppSettings["SQLConnString3"]);
  
  // Hashtable to store cached parameters
  private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
 
  public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {

   SqlCommand cmd = new SqlCommand();

   using (SqlConnection conn = new SqlConnection(connString)) {
    PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
    int val = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    return val;
   }
  }

  public static int ExecuteNonQuery(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {

   SqlCommand cmd = new SqlCommand();

   PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
   int val = cmd.ExecuteNonQuery();
   cmd.Parameters.Clear();
   return val;
  }

  public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {
   SqlCommand cmd = new SqlCommand();
   PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
   int val = cmd.ExecuteNonQuery();
   cmd.Parameters.Clear();
   return val;
  }

  public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {
   SqlCommand cmd = new SqlCommand();
   SqlConnection conn = new SqlConnection(connString);

   // we use a try/catch here because if the method throws an exception we want to
   // close the connection throw code, because no datareader will exist, hence the
   // commandBehaviour.CloseConnection will not work
   try {
    PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    cmd.Parameters.Clear();
    return rdr;
   }catch {
    conn.Close();
    throw;
   }
  }
  
  public static object ExecuteScalar(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {
   SqlCommand cmd = new SqlCommand();

   using (SqlConnection conn = new SqlConnection(connString)) {
    PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
    object val = cmd.ExecuteScalar();
    cmd.Parameters.Clear();
    return val;
   }
  }
  public static object ExecuteScalar(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {
   
   SqlCommand cmd = new SqlCommand();

   PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
   object val = cmd.ExecuteScalar();
   cmd.Parameters.Clear();
   return val;
  }

  public static void CacheParameters(string cacheKey, params SqlParameter[] cmdParms) {
   parmCache[cacheKey] = cmdParms;
  }
  public static SqlParameter[] GetCachedParameters(string cacheKey) {
   SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
   
   if (cachedParms == null)
    return null;
   
   SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];

   for (int i = 0, j = cachedParms.Length; i < j; i++)
    clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();

   return clonedParms;
  }

  private static void PrepareCommand(SqlCommand cmd,
   SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) {

   if (conn.State != ConnectionState.Open)
    conn.Open();

   cmd.Connection = conn;
   cmd.CommandText = cmdText;

   if (trans != null)
    cmd.Transaction = trans;

   cmd.CommandType = cmdType;

   if (cmdParms != null) {
    foreach (SqlParameter parm in cmdParms)
     cmd.Parameters.Add(parm);
   }
  }
 }
}

众里寻 Bug 千百度,蓦然回首,它却在隔壁老张处……

点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事程序员与 Bug 是一对矛盾的存在,程序员既要在解决 Bug 中获得成就感,同时也讨厌 Bug 本身的存在。“程序不息,Bug...
  • csdnsevenn
  • csdnsevenn
  • 2017年12月19日 00:00
  • 154

众里寻他千百度,蓦然回首,那人却在。。。

第一个项目终于完成了,做的很辛苦,每天都要凌晨好几点才能睡觉,有时鼻血不经意间就流淌出来了,兄弟们,有木有?有木有?最大的感受就是:思路决定出路。做某个模块之前,我会在笔记本上写好思路,敲代码就看着写...
  • u011886490
  • u011886490
  • 2013年08月30日 14:59
  • 615

众里寻他千百度,蓦然回首,那人却在。。。。。

第一个项目终于完成了,做的很辛苦,每天都要凌晨好几点才能睡觉,有时鼻血不经意间就流淌出来了,兄弟们,有木有?有木有?最大的感受就是:思路决定出路。做某个模块之前,我会在笔记本上写好思路,敲代码就看着写...
  • u011886490
  • u011886490
  • 2013年08月30日 14:59
  • 319

转载:HUDSON邮件模板问题 <众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处>

转载:http://blog.csdn.net/bxyz1203/article/details/7397078      【众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处】 【...
  • huguangshanse00
  • huguangshanse00
  • 2013年11月10日 20:36
  • 1112

HUDSON邮件模板问题 <众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处>

【众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处】 【问题描述】 hudson邮件功能太弱了,项目经理说,能不能换成好看的。 我就在hudson仓库中找了Email-ext+p...
  • bxyz1203
  • bxyz1203
  • 2012年03月26日 23:01
  • 3917

basename()—众里寻他千百度,那人却在linux函数库

这是一桩因不熟悉linux函数引发的惨案,容我吃口热翔后为大家细细道来:      我想在linux上用C借助socket实现一个文件传输的软件,输入文件的目录后将该文件从客户端发送到服务器,包括该文...
  • u012520551
  • u012520551
  • 2015年08月07日 23:04
  • 845

众里寻他千百度

机房收费系统是自学生信息系统之后的又一完整的系统,但是不同的是:学生信息系统有源码,还有现成的数据库,只要直接连接,然后照着敲就可以了;但是机房收费系统却只有一个应用程序,虽然也给了数据库,但是那只是...
  • u010927139
  • u010927139
  • 2013年09月26日 17:26
  • 1463

众里寻她千百度,那人却在优衣库。

众里寻她千百度,那人却在优衣库。        -------   我的第一篇微小说 。。。...
  • stableboy
  • stableboy
  • 2015年07月15日 15:53
  • 1212

奋斗吧,程序员——第十三章 蓦然回首,那人却在灯火阑珊处

当你出去打完球回来,手机依然是安静地沉睡在那里,持续了好久。 没有人牵挂,也省去了在每个月的月末接近400条短信的时候会不断地打10086查询的麻烦。 又或者象现在这样,手机上闪动着未回复的短信,...
  • qq_34667436
  • qq_34667436
  • 2016年04月22日 16:02
  • 520

腾讯offer-众里寻他千百度

腾讯offer      2012-04-25 15:40   收到腾讯HR电话,告知已获offer。          感谢!...
  • Jiangweihll
  • Jiangweihll
  • 2014年04月25日 15:48
  • 5772
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:众里寻他千百度,蓦然回首,那人却在灯火阑珊处
举报原因:
原因补充:

(最多只允许输入30个字)