zoukankan      html  css  js  c++  java
  • 参数化命令相关知识点(防止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];
    }
    }

  • 相关阅读:
    使用Java实现对MySql数据库的导入与导出
    【转】揭开J2EE集群的神秘面纱
    Memcached深度分析
    HSQL入门及使用指南
    系统架构基础篇(高性能基础建设说明与选型条件)
    架构之美 摘抄
    JMS规范及相关实现
    spring3中使用@value注解获取属性值
    Thread Dump 分析综述
    什么中间件及中间件服务器?
  • 原文地址:https://www.cnblogs.com/liujiayun/p/5319491.html
Copyright © 2011-2022 走看看