public static void CacheParameters(string cacheKey, params SqlParameter[] cmdParms) {
parmCache[cacheKey] = cmdParms;
} /// <summary>
/// Retrieve cached parameters
/// </summary>
/// <param name="cacheKey">key used to lookup parameters</param>
/// <returns>Cached SqlParamters array</returns>
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;
}sqlhelper类中为什么要用参数缓存?
有什么好处?

解决方案 »

  1.   

    因为整个 SqlHelp类是静态的,很有可能这是处理参数的唯一的办法。或者说这是不得已而为之的。SqlHelp 有效率可言吗?
      

  2.   

    我是这样理解的,不知有没有道理:这是一个以时间换空间的方法,也就是说如果不用这种东西,那么每次都要new一个参数,这样做.net当然可以回收内存,但是由于回收时间不一定,所以可能在一段时间内占用大量内存,而缓存后则内存中只有一个拷贝了。 
    请达人指点.