SqlHelper详解(转载)
- public DataSet GetDepartmentMemberList(int departmentID)
- {
- try
- {
- string sql = "OA_Department_GetDepartment_Members";
- string conn = ConfigurationSettings.AppSettings["strConnection"];
- SqlParameter[] p =
- {
- SqlHelper.MakeInParam("@departmentID",SqlDbType.Int,4,departmentID)
- };
- DataSet ds = SqlHelper.ExecuteDataset(conn,CommandType.StoredProcedure,sql,p);
- return ds;
- }
- catch(System.Data.SqlClient.SqlException er)
- {
- throw new Exception(er.Message);
- }
- }
复制代码
现在我是这样来写的: //连接字符串
- private string _connectionString = ConfigurationSettings.AppSettings["strConnection"];
- public string ConnectionString
- {
- get {return this._connectionString;}
- set {this._connectionString = value;}
- }
- public DataSet GetNewsToIndexPage(int NewsTypeID)
- {
- return GetDataSet("yzb_GetNewsToIndexPage",GetNewsToIndexPage_Parameters(NewsTypeID));
- }
复制代码
//设置存储过程参数
- private SqlParameter[] GetNewsToIndexPage_Parameters(int NewsTypeID)
- {
- SqlParameter[] p =
- {
- SqlHelper.MakeInParam("@NewsTypeID",SqlDbType.Int,4,NewsTypeID)
- };
- return p;
- }
复制代码
//这里才真正调用SqlHelper
- private DataSet GetDataSet(string sql, params SqlParameter[] p)
- {
- return SqlHelper.ExecuteDataset(ConnectionString,CommandType.StoredProcedure,sql,p);
- }
复制代码
代码更加灵活,更加安全了:P 做为一个懒人,大笨狼51aspx我经常这样写:
- System.Data.DataTable dt=SqlHelper.ExecuteDataset(SqlHelper.CONN_STRING_NON_DTC,CommandType.Text,sql).Tables[0];
复制代码
直接返回DataTable, 返回表集合基本不用,只返回一个table用于绑定。 string conn = ConfigurationSettings.AppSettings["strConnection"]; 我写在SqlHelper.CONN_STRING_NON_DTC里面 MakeInParam代码烦琐,如果查询输入条件不可能有组合SQL, 我直接exec pronamr paraargs 如果查询输入条件存在安全问题,或者带返回参数 再用
- SqlParameter[] queryParam=new SqlParameter[] {
- new SqlParameter("@UserID",SqlDbType.Int)
- };
- queryParam[0].Value=this.UserID;
复制代码
组合sql语句用到@和string.Format技巧.例如:
- sql=@"UPDATE Test_User_Statistic
- SET
- Test_User_Statistic.[IsQualified]={0},
- Test_User_Statistic.[Reason]='{1}'
- WHERE UserID={2}" ;
- sql= string.Format(sql,IsQualified,Reason,userID);
- SqlHelper.ExecuteNonQuery(SqlHelper.CONN_STRING_NON_DTC,CommandType.Text,sql);
复制代码
其中sql语句可以借助SQL的查询分析器生成。这么干要保证安全,如果有输入漏洞,建议还是用SqlParameter[]缓存参数,因为它会把攻击性的代码,比如带单引号分号的,当作普通字符处理。
转载于:https://www.cnblogs.com/johntom/archive/2012/04/06/2435383.html
SqlHelper详解(转载)相关推荐
- spring依赖注入原理详解(转载)
spring依赖注入原理详解----转载 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中.当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它.所 ...
- Executor框架的详解(转载)
在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...
- vsftpd配置文件详解[转载]
vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名用户使用 ...
- HTTP详解(转载)
HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...
- ntp 配置详解(转载后整理汇总)
ntp 配置详解 一.时间和时区 在LINUX系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数. 世界遵循一个标准UTC,中国的标准是CST(北京时间)中国处于 ...
- 分布式事务中的三种解决方案详解(转载)
一.分布式事务前奏 快看小说网事务:事务是由一组操作构成的可靠的独立的工作单元,事务具备ACID的特性,即原子性.一致性.隔离性和持久性. 本地事务:当事务由资源管理器本地管理时被称作本地事务.本地事 ...
- SpringMVC 之类型转换Converter详解转载
SpringMVC之类型转换Converter详解 本文转载 http://www.tuicool.com/articles/uUjaum 1.1 目录 1.1 目录 1.2 ...
- VLAN原理详解[转载] 网桥--交换机---路由器
来自:http://blog.csdn.net/phunxm/article/details/9498829 一.什么是桥接 桥接工作在OSI网络参考模型的第二层数据链路层,是一种以MAC地址来作 ...
- SAP 物料分类账CKM3详解(转载)
原文地址:物料分类账 CKM3详解_SAP小白kenny的博客-CSDN博客_ckm3 业务背景 物料分类账的主要作用在于将实际成本和标准成本的差异分摊到库存和销售成本中,从而实现差异在实际的使用者中 ...
最新文章
- oracle anbob,Tag Archives: oracle安装 | ANBOB
- tensorflow 集成开发环境 (IDE)
- 微软 GitHub 推出新代码搜索工具,面向GitHub编程?
- linux文件存储结构,Linux文件存储方式以及软硬链接
- Spring+Hibernate整合Hessian
- router阻止telnet自身的两种方法
- 耗时1个月整理的这份英语资源!一次性全部分享给你,手慢无!
- linux service命令
- CF1039E Summer Oenothera Exhibition
- 实现xml和json接口(第一篇)
- 强制删除文件处理程序
- autojs利用坚果云实现云更新
- excel 如何冻结多行多列
- MarkdownNote
- ubuntu系统切换高性能模式
- 高效的中文字符串截取函数
- Android中错误Annotation processors must be explicitly declared now. The following dependencies on the
- Ubuntu_ROS 学习
- 计算机机房设计相关标准,电子计算机机房设计规范GB50174-93[3]
- 虎虎 ( 2008 - 2020-0414 )
热门文章
- Linux复习资料——CentOS7下安装MySQL5.7.22(完整版本)
- Linux对运行服务操作命令
- 程序员数学基础【一、基础运算符号(整数、普通浮点数运算、逻辑运算)】(Python版本)
- Java面试题:如何将字符串反转?(翻转字符串)
- GoldenGate SQL error 1403 mapping 错误解决方案
- 使用scp、ssh等不用输入密码
- Flatten Binary Tree to Linked List - LeetCode
- dig指定服务器查询域名解析时间
- windows server 注意windows的temp目录
- 小知识汇总----不断更新中...