在.net中关于SQL Server有两种打开连接的方式,一种是在System.Data.SqlClient命名空间下,相信很多人都是用这里面的方法进行编程的,还有一种是在Microsoft.ApplicationBlocks.Data.SqlHelper命名空间下,方法大致相同,为什么会有两个不同的空间提供相似的功能呢?
微软在推出.net体系时默认附带了System和Microsoft两个命名空间,Microsoft命名空间正是System命名空间的有力补充,即以当前讨论的话题而言,倘若以System.Data.SqlClient进行编程,将需要用到SqlCommand还有SqlDataAdapter等,需要自己管理数据库的打开和关闭,例如
cn.open(); //打开数据库连接
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //数据集关闭时同时关闭连接
dr.Close(); //关闭数据集(同时也关闭了数据库连接)
然而在Microsoft.ApplicationBlocks.Data.SqlHelper命名空间下根本不用管,同样的操作
SqlDataReader dr = SqlHelper.ExecuteReader(cn,CommandType.Text,querySql);
两相对照,下一种更称心不是吗?
既然在微软的体系下编程,最佳选择当然是最大限度的利用微软所提供的东西,.net体系下的Microsoft命名空间可看作是微软对.net提供的基本功能的一个二次开发产品一样,它进一步优化的功能,自然不限于在数据库开发这一部分,还要多花时间好好研究,呵呵难得的是,这个产品还是开源的,有兴趣者可以去msdn上下载,现在已经到2.0版本了.
愿对此有深刻见解者有教于我.