博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
参数化命令相关知识点之==================防止SQl的注入
阅读量:5157 次
发布时间:2019-06-13

本文共 2069 字,大约阅读时间需要 6 分钟。

一: 使用参数化命令查询DAL类: public DataTable StudentDAL(string name,string gender) { string str="连接字符串";//使用Using的稀少资源的释放using(sqlconnection con=new sqlconnection(str)) { string sql="select * from stdent where studentName=@name and Gender=@gender"; sqlcommand com=new sqlcommand(); sqlparameter[] par= { new sqlparameter=("@name",name), new sqlparameter=("@gender",gender); }; com.parameters.addRange(par); sqldataadapter da=new sqldataadapter(com); dataset dt=new dataset(); da.Fill(dt); return dt.Tables[0]; } }

 

二:在C#中调用带输入参数的存储过程 --创建存储过程 create proc usp_selectStudent @studentName nvarchar(10) as select * froom student where StudentName=@studentNanme go DAL类 public DataTable GetStudentInFo(string name) { string str="连接字符串"; using(sqlconnection con=new sqlconnection(str)) { string sql="usp_selectStudent"; sqldataadapter da=new sqldataadapter(sql,con); sqlcommand com=da.selectcommand; //指定字符串为存储过程com.CommandType=CommandType.StoredProcedure; sqlparameter par=new sqlparameter=("@name",name); com.parameter.add(par); dataset dt=new dataset(); da.Fill(dt); return dt.Tables[0]; } }
三: 在C#中调用带输出参数的存储过程 --创建存储过程 create proc usp_selectstudentCount @name nvarchar(10) @Gender nvarchar(10) output as select @Gender=count(*) from student where studentName=@name; select * froom student where studentName=@name; go DAL类 public DataTable GetStudentCount(string name,string Gender) { string str="连接字符串"; using(sqlconnection con=new sqlconnection(str)) { string usp_selectstudentCount sqldataadapter da=new sqldataadapter(sql,con); sqlcommand com=da.selectCommand; com.CommandType=CommandType.StoredProcedure; sqlparameter [] pa= { new sqlparameter("@name",name), //设置为输出参数new sqlparameter("@Gender",sqlDbType.nvarchar,10) } //设置最后一个参数的输出 方向pa[pa.length-1].Direction=ParameterDiraction.OutPut; com.parameter.addRange(pa); string count=pa[pa.length-1].value.toString(); dataset dt=new dataset(); da.Fill(dt); return Table dt.Table[0]; } }

 补充一下Using的语法:

using (类型 对象名 = new 类型(参数列表)){    //……    //……}

 

参数化命令— SqlParameter

 

   

转载于:https://www.cnblogs.com/yejiaojiao/p/5387329.html

你可能感兴趣的文章
获得当前设备可用的内存 和 获取当前任务所占用的内存 (单位:MB)(转)
查看>>
D. Buy a Ticket(优先队列+dijkstra)
查看>>
set&map
查看>>
git解决一个电脑多用户情况(win7)
查看>>
《高级软件测试》实践作业4学习记录12月28日
查看>>
集合类总结
查看>>
spring boot开发REST接口
查看>>
[读书笔记] Python数据分析 (二) 引言
查看>>
4.AE中的缩放,书签
查看>>
CVE-2014-6321 && MS14-066 Microsoft Schannel Remote Code Execution Vulnerability Analysis
查看>>
网络攻防 第七周学习总结
查看>>
关于_weblogic.xml的sessionID配置
查看>>
高考估分查分选志愿一键搞定_支付宝又操办了件人生大事
查看>>
给一次重新选择的机会_您还会选择程序员吗?
查看>>
template.js的介绍
查看>>
HDU 5446 Unknown Treasure Lucas+中国剩余定理
查看>>
Android RxJava小结
查看>>
LeetCode Online Judge 题目C# 练习 - Remove Duplicates from Sorted List II
查看>>
mysql修改密码
查看>>
CSS--居中方式总结
查看>>