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/
  • 相关阅读:
    Linux下gdb调试(tui)
    gdb tui中切换窗口
    gdb调试时的问题Missing separate debuginfos, use: debuginfo-install glibc-XXX
    进程间通信
    深入理解计算机系统结构——链接
    系统调用
    模块机制
    其他文件系统
    Oracle数据库逻辑迁移之数据泵的注意事项
    Oracle 10g DG 数据文件迁移
  • 原文地址:https://www.cnblogs.com/baixingqiang/p/5492215.html
Copyright © 2011-2022 走看看