大家都知道 using(type object){code}其实也就是 IDisposable中的释放资源方法的便利写法Dispose()
今天在重写OleDbHelper的时候 发现了一个问题MSDN也说的比较含糊 我这个人也比较笨..请教下各位大虾啦~ 
代码如下 PrepareCommand为准备cmdpublic static object GetSingle(string SQLString, params OleDbParameter[] cmdParms)
        {
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                using (OleDbCommand cmd = new OleDbCommand())
                {
                    try
                    {
                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                        object obj = cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                        if ((obj.Equals(null) || obj.Equals(DBNull.Value)))
                        {
                            return null;
                        }
                        else
                        {
                            return obj;
                        }
                    }
                    catch(OleDbException exp)
                    {
                        throw new Exception(exp.Message);
                    }
                }
            }
        }
这代码看上去 确实没什么问题 但是细推敲一下 貌似connection最后还是没有关闭 
这样习惯着写connection的人 估计不在少数 我也查看了网上好多oledbHelper大多都是这么写的(别嫌我helper老.. 不是不喜欢用ORM只不过是小项目..呵呵)
那么 using会自动调用connection.Dispose()
查看OleDbConnection对象的Dispose()解释:释放由 Component 使用的所有资源。
Component解释提供 IComponent 接口的基实现并启用应用程序之间的对象共享
IComponent 接口 解释: 提供所有组件需要的功能。
是不是说的很含糊?? 我看了是一知半解... 到底有没有关闭连接呢?? 
由于我对Component不熟悉 望大虾指点一下啊 如果不能关闭连接 我就直接写到finally里面去了~ 
(由于本人 追踪对象这个功能板目前用不起来...装VS2008SP1装坏的 - -#要不然自己解决下了 哎... 再加上我还是初学..)