本文章主要介绍SqlHelper使用。
每个项目都要用到数据访问层,我做的也不例外,但是我把数据访问层做成独立项目,没有什么太大的目的,数据访问层,仅仅做数据访问用,不包含任何逻辑。
为什么要使用数据访问层?
如果不使用数据访问层,那么你的代码里会出现很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……这些类和方法,而且代码量很大,让你不胜其烦,而且代码写起来,其实都是体力活,没有技术含量。因此我们要把数据访问层封装起来,方便重用。微软已经替我们做好了这个工作,那就是SqlHelper,下图是SqlHelper的类关系图:
下面介绍我的使用方法。
执行一个无返回值的存储过程:
create proc p_Delete@id int
as
delete table1 where id=@id 这是一个删除数据的存储过程,调用该存储过程只需要一句话:SqlHelper.ExecuteNonQuery (SqlHelper.conn, "p_Delete", id);,这里的id是int类型,而不是SqlParameter类型。该调用是调用的public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)方法。以此类推。返回一个DataSet类型:SqlHelper.ExecuteDataset (SqlHelper.conn, pro, 参数列表);参数也是直接传递,无需构造SqlParameter……好了,本文主要是介绍一个小技巧,就是params object[]的使用方法,让高手见笑了出处:数据访问层SqlHelper的使用大家觉得这么做有没有什么坏处?
每个项目都要用到数据访问层,我做的也不例外,但是我把数据访问层做成独立项目,没有什么太大的目的,数据访问层,仅仅做数据访问用,不包含任何逻辑。
为什么要使用数据访问层?
如果不使用数据访问层,那么你的代码里会出现很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……这些类和方法,而且代码量很大,让你不胜其烦,而且代码写起来,其实都是体力活,没有技术含量。因此我们要把数据访问层封装起来,方便重用。微软已经替我们做好了这个工作,那就是SqlHelper,下图是SqlHelper的类关系图:
下面介绍我的使用方法。
执行一个无返回值的存储过程:
create proc p_Delete@id int
as
delete table1 where id=@id 这是一个删除数据的存储过程,调用该存储过程只需要一句话:SqlHelper.ExecuteNonQuery (SqlHelper.conn, "p_Delete", id);,这里的id是int类型,而不是SqlParameter类型。该调用是调用的public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)方法。以此类推。返回一个DataSet类型:SqlHelper.ExecuteDataset (SqlHelper.conn, pro, 参数列表);参数也是直接传递,无需构造SqlParameter……好了,本文主要是介绍一个小技巧,就是params object[]的使用方法,让高手见笑了出处:数据访问层SqlHelper的使用大家觉得这么做有没有什么坏处?
解决方案 »
- 求一url重写的正则:把url中的匹配部分,添加到url的queryString参数里去
- 急需答案--如何在电子报上动态加锚点,请高手们帮忙看看
- asp.net 关闭页面弹出对话框
- asp.net生成静态HTML的问题
- 如何控制datagrid的表头字段单元格的宽度?
- 求助:webform中textbox循环的问题。
- 又来提问javascript的问题
- session变量和框架的问题
- MVC 如何保存编辑前的(Model)值
- Oracle.net的参数倒底是怎么回事
- |zyciis| 如何移除Request.QueryString.Keys 提示:集合是只读的。 急
- 请教:C#里这句 [DataObjectMethod(DataObjectMethodType.Select)] 是什么意思?
无知。
跟到函数里面看看在说,
public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
大家不信可以在论坛里搜索下,看有多少使用SqlHelper的,还在new SqlParameter,我是看到了这么用很麻烦,不知道直接调用object的有什么不妥。
n年前就有了啊,怎么。
2、装箱,拆箱在参数比较多时会不会影响效率?
SqlHelper他只针对sql连接,比较难扩展,但是企业类库却能很好的根据配置文件来使用不同的连接方式,而且提供的接口也更灵活
建议你也去看看企业类库,做一下比较。
不过确实比较实用 轻量 简单 稳定另外......居然发0分贴~!!
微软出了c#,那他为什么不用c#来开发vs2005?是不能实现吗?我觉得更多的应该是保护现有投资。
对于开发工具而言,性能很重要,目前的VS IDE的性能已经让很多人不满意了。
相对于传统的win32开发工具语言,.net做windows开发运行效率稍低一些,耗内存更多一些,这是无法否认也不得不面对的问题。因为至少在现在来讲,CPU和内存仍然是有瓶颈的。
是不一定,不是说.net开发的新能就差。
至于微软以及某些专家的话,能全信吗?相信很多人有实际的体会。
以后.net的性能会怎样,我不知道,但至少在目前,除了企业级开发之外,大部分领域还传统的win32开发工具占主导地位。
另外,我很想问下,“微软,以及一些技术专家都对性能问题表示:.net的性能不一定输于传统的c++,vb等编译好的程序。”,他们有给过实际对比的范例吗?实际应用中,反例却不少。
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
例如性能主要取决于IO 或者是网络的时候更多的时候性能取决于解决方案 写代码人的水平 而不是语言当然如果你要用.net开发3d游戏那肯定是顶不住了
注: 主要不是因为性能问题 现在的机器性能都跑的动 关键是.net的垃圾回收会导致一定时间的无响应VB那丫的性能并不好
因為我沒有辦法寫出來,所以我肯定的認為傳統win32的運行效率超出.net。實話說,我感覺說.net和傳統win32開發工具(特別是vc)性能差不多的人,80%以上沒有真正做過win32開發。大多數衹是在安慰自己而已。
誠如vrhero 所說:“使用工具得先搞清楚工具用在什么地方才能发挥其最大效能”
是个C# asp.net 的人都知道sqlhelper.cs
不过下次用的时候我会用SqlHelper的。
中国无忧商务网-无忧商务 商务无忧
www.cn5135.com
害得我SqlParameters很长一段时间,决定从此告别SqlParameters
sqlhelper内部封装了sqlparameter,我们使用方便多了