参数化命令相关知识点(防止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];
}
}
最新文章
- Mysql的Haproxy反向代理和负载均衡
- 无废话SharePoint入门教程一[SharePoint概述]
- 【英语】Bingo口语笔记(21) - 表达“请客吃饭”
- Netbeans IDE配置
- HDU 2553 n皇后问题(回溯法)
- Wowza流媒体Live直播和VOD点播配置实战
- unity还原three导出的json——基本模型,位移,旋转,缩放
- 浅析前端开发中的 MVC/MVP/MVVM 模式
- Servlet交互【重定向 与 请求分派】详解
- python 3.6 MJ小工具
- 错误 frm-40654 记录已经被另一个用户更新,重新查询以查看修改
- 理解ClassLoader
- 20164322 韩玉婷-----Exp6 信息搜索与漏洞扫描
- Python之面向对象的组合、多态、菱形问题、子类中重用父类的两种方式
- margin 负边距应用
- 随笔记:如何使用Python连接(/操作)Oracle数据库(Windows平台下)
- CVE-2015-1642 POC
- yii2-admin扩展自定义目录
- Oracle VM VirtualBox 安装XP、Win 7
- Linux学习笔记 (七)挂载命令
热门文章
- js数据类型判断和数组判断
- 【译】在 Chrome 开发者工具中调试 node.js
- Django 源码小剖: URL 调度器(URL dispatcher)
- 【jquery】Validform,一款不错的 jquery 表单验证插件
- Kafka - SQL 代码实现
- PowerShell实现文件下载(类wget)
- PHP读写文件高并发处理实例-转
- JS - Cookie: getCookie, setCookie
- [z] 人工智能和图形学、图像处理方面的各种会议的评级
- IT项目经理成长手记