zoukankan      html  css  js  c++  java
  • 参数命令化 防止Sql注入

    1.先在数据库中完成储存过程

    create proc usp_selectStudent
    @studentName nvarchar(10)
    as
    select * froom student where StudentName=@studentNanme
    go

    2.然后再C#程序中调用储存过程防止Sql注入

        //1.1  连接字符串
        string str = "data source=.;initial catalog=MySchool;uid=sa;pwd=6375196";
        //1.2 创建连接对象    呵呵
        SqlConnection con = new SqlConnection(str);
        //创建SqlCommand 对象的第二种方式
        //从Con出发
        //1.3  从连接对象构建命令对象
        SqlCommand cmd = con.CreateCommand();
        //1.4  给命令对象需要执行的SQL语句赋值
        cmd.CommandText = "usp_selectInfo";
        //告诉SQL引擎我传递过来的是        存储过程的名称
        //1.5  我们告诉SQL引擎   我通过网线送过去的字符串是  一个存储过程的名字啊
         cmd.CommandType= CommandType.StoredProcedure;
         //1.6   构建存储过程的输入参数,并且给参数赋值,
         //参数的名称必须和定义存储过程的输入参数名称完成相同
         SqlParameter para=new SqlParameter("@sex","1");
         //1.7   将参数和命令对象的参数集合绑定
         cmd.Parameters.Add(para);
         //1.8  打开数据库连接通道真正建立
         con.Open();
         //1.9   构建一个适配器 )卡车( 对象
         SqlDataAdapter da=new SqlDataAdapter();
         //1.10  将已经初始化好的cmd对象和da绑定
         da.SelectCommand = cmd;
         //1.11   构建内存中的数据集对象
         DataSet ds=new DataSet();
         //1.12   从DB   拎    数据到DataSet 中的一张表
         da.Fill(ds, "StuInfo");
         //1.13    将dgv的数据源指向表
         dgvList.DataSource = ds.Tables["StuInfo"];
         //1.14    连接关闭
          con.Close();
    更多详情请关注 http://www.cnblogs.com/baixingqiang/
  • 相关阅读:
    Python推导式(Comprehension)
    mysql中文乱码
    入门学习hibernate
    什么是ORM?
    Java网站中的权限管理
    Java的8中基本数据类型
    Python获取文件夹大小
    Python技巧
    Python中取整的方法floor,ceil,round
    Python线程join和setDaemon
  • 原文地址:https://www.cnblogs.com/baixingqiang/p/5492215.html
Copyright © 2011-2022 走看看