zoukankan      html  css  js  c++  java
  • ADO.NET 完整修改和查询、数据库注入攻击、实体类和数据访问类

    完整修改和删除:

    1、先查询是否有该用户名

    2、然后执行修改和删除操作

    例:

    bool has = false;//定义has为false
    Console.WriteLine("请输入你要删除的用户名:");
    string nameshan = Console.ReadLine();

    comd.CommandText = "select *from xinxi where name='" + nameshan + "'";//先查询是否有该用户名
    conn.Open();//开启数据库通道
    SqlDataReader dr1 = comd.ExecuteReader();//执行查询操作
    if (dr1.HasRows)
      {
        has = true;
      }
    conn.Close();//关闭数据库通道


    if (has)//确定有该用户名,执行删除操作
    {
      Console.WriteLine("您确定要删除用户名[" + nameshan + "]吗?请输入Y/N进行选择!");
      string shan = Console.ReadLine();
      if (shan.ToUpper() == "Y")//如果确定要删除用户名,执行删除操作
        {
          comd.CommandText = "delete from xinxi where name=@nameshan";

          comd.Parameters.Add("@nameshan", nameshan);

          conn.Open();
          comd.ExecuteNonQuery();
          conn.Close();
          Console.WriteLine("删除成功!请按回车键继续执行其他操作!");
          Console.ReadLine();
        }
    }
    else//无用户名提示
    {
      Console.WriteLine("账号输入有误!请重新确认!");
    }

    SQL数据库字符串注入攻击

    需要使用cmd.Parameters这个集合
    占位符: 使用  @ 关键字 

    Parameters 这个集合中将此占位符所代表的数据补全

    comd.Parameters.Clear(); --添加占位符数据之前,要清空此集合
    comd.Parameters.Add("@pwd", Pwd); --占位符内容填充,需要一个一个填充

    实体类和数据访问类:

    实体类:封装
    ①封装一个类,类名与数据库表名尽量保持一致
    ②成员变量名与列名一致,多一个下划线(约定)
    ③成员变量封装完的属性,就会与数据表中的列名一致

    数据访问类:
    就是将对数据库的一些操作,单独写到一个类中,封成一些方法,等待调用


    *三层开发:
    界面层 - UI层
    业务逻辑层 - C#代码部分
    数据访问层 - 实体类和数据访问类

  • 相关阅读:
    Dp~Hrbust1426( 集训队的晚餐 )
    DP~数塔(hrbustoj1004)
    MyEclipse启动性能优化(----加快启动速度)
    很实用的php的缓存类文件示例
    PHP中9大缓存技术总结
    微信公众平台开发(76) 获取用户基本信息
    js中 onreadystatechange 和 onload的区别
    一个js文件导入js的函数
    PHP cURL实现模拟登录与采集使用方法详解教程
    Mysql清空表(truncate)与删除表中数据(delete)的区别
  • 原文地址:https://www.cnblogs.com/hcx999/p/5869057.html
Copyright © 2011-2022 走看看