参数化命令相关知识点(防止Sql注入)
一: 使用参数化命令查询
DAL类:
public DataTable StudentDAL(string name,string gender)
{
string str="连接字符串";
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];
}
}
参数化命令相关知识点(防止Sql注入)的更多相关文章
- 参数化命令相关知识点之==================防止SQl的注入
一: 使用参数化命令查询DAL类: public DataTable StudentDAL(string name,string gender) { string str="连接字符串&qu ...
- 使用参数化查询防止SQL注入漏洞(转)
SQL注入的原理 以往在Web应用程序访问数据库时一般是采取拼接字符串的形式,比如登录的时候就是根据用户名和密码去查询: string sql * FROM [User] WHERE UserName ...
- 使用参数化查询防止SQL注入漏洞
参数化查询防止SQL注入漏洞 看别人的登录注册sql语句有没漏洞即可 Where name=‘admin’ or ‘1=1’ and password=’123’; 可以Or ‘1=1’就是漏洞 h ...
- SQL注入与参数化查询
SQL注入的本质 SQL注入的实质就是通过SQL拼接字符串追加命令,导致SQL的语义发生了变化.为什么发生了改变呢? 因为没有重用以前的执行计划,而是对注入后的SQL语句重新编译,然后重新执行了语法解 ...
- python mysql参数化查询防sql注入
一.写法 cursor.execute('insert into user (name,password) value (?,?)',(name,password)) 或者 cursor.execut ...
- MySQL参数化有效防止SQL注入
sql语句的参数化,可以有效防止sql注入 注意:此处不同于python的字符串格式化,全部使用%s占位 from pymysql import * def main(): find_name = i ...
- SQL注入之代码层防御
[目录] 0x0 前言 0x1 领域驱动的安全 1.1 领域驱动的设计 1.2 领域驱动的安全示例 0x2 使用参数化查询 2.1 参数化查询 2.2 Java中的参数化语句 2.3 .NET(C#) ...
- ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
- MySQL之SQL注入
1.SQL注入? 通过SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 2.防止SQL注入,我们需要注意以下几个要点: ①永远不要信任用户的输入 ...
随机推荐
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- Swift基础--手势识别(双击、捏、旋转、拖动、划动、长按)
// // ViewController.swift // JieUITapGestureRecognizer // // Created by jiezhang on 14-10-4. // ...
- [ linux ] pad远程
---恢复内容开始--- ssh: serverauditor vnc:vnc viewer ubuntu: sudo apt-get install x11vnc sudo apt-get inst ...
- PowerShell实现文件下载(类wget)
对Linux熟悉的读者可能会对Linux通过wget下载文件有印象,这个工具功能很强大,在.NET环境下提到下载文件大多数人熟悉的是通过System.Net.WebClient进行下载,这个程序集能实 ...
- 云极知客开放平台接口调用方法(C#)
云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...
- Discuz & UCenter 修改手记 - 2014.12.19
最近在整JAVA和UCENTER的东西,受限于项目架构需要,无法完全以UCENTER为中心,所以在对接过程中遇到了许多不愉快的事情.经历多番研究,终于解决了其中了两个大问题,现记录下来,以备日后查看. ...
- AjaxUploader使用
一.简单上传(Simple Upload with Progress) <CuteWebUI:Uploader ID="ajaxUploader" runat="s ...
- 搭建WebRtc环境
0.前言 这次的需求,准备做的是一个类似与QQ视频一样的点对点视频聊天.这几天了解了一些知识后,决定使用HTML5新支持的WebRtc来作为视频通讯.客户端使用支持HTML5浏览器即可.服务器段需要提 ...
- 手把手教你搭建LyncServer2013之部署及配置监控功能(十八)
自弃用监控服务器角色以来,已对 Microsoft Lync Server 2013 监控基础结构进行了重大更改.不再采用不同的监控服务器角色(通常需要组织设置专用计算机来充当监控服务器),现在监控服 ...
- VS2010打包,遇到的一些问题和解决办法
我用的VS2010,教程很多,我就不一一介绍了,我把我自己遇到的一些问题向大家说一下: 1 可能我比较笨吧,没有理解网上很多教程的意思,直接把图片的后缀名改了,导致添加快捷方式图标的时候出现这种情况 ...