zoukankan      html  css  js  c++  java
  • C# ADO.NET基础&实战

    什么是ADO.NET:数据库访问技术!

    作用:通过程序来连接访问数据库!

    一、基础:

    using System.Data.SqlClient;    //数据库连接命名空间

    string connection = "server =.; Database =Data0908; user =sa; pwd =123;";  //连接字符串,固定关键字;

    SqlConnection Conn = new SqlConnection(connection);  //连接数据库类

    SqlCommand Comm = Conn.CreateCommand;  //数据库操作类

    Conn.ConnectionText = "insert into Users values(' ',' ',' ',' ')";   //连接此Sql语句,Sql语句可以进行增删改查等操作

    Conn.Open();   //开启数据库

    ****开启数据库务必关闭数据库

    int zx = Comm.ExectueNonQuery;  //执行上一句连接的Sql语句,此方法适用于增删改

    ****返回值是一个int类型的值!

    Conn.Close();  //关闭数据库

    if( zx > 0 )           //如果zx返回的值大于0,那么执行成功添加,否则执行失败

      Console.WriteLine("执行成功");    

    else

      Console.WriteLine("执行失败");

    SqlDataReader DR = Comm.ExectueReader;  //执行上一句连接的Sql语句,此方法适用于查

    ****返回值是一个bool类型的值!

    if(DR.HasRows)   //DR.HasRows相当于返回一个true

      Console.WriteLine("执行成功");

    else

      Console.WriteLine("执行失败");

    要点:

    1、SqlConnection:和数据库交互必须连接他;

    2、SqlCommend:成功建立连接后可进行增删改查等命令;

    3、SqlDataRead:读取一行字符串的Sql语句;

    二、实战:

    1、攻击

    字符串攻击:a'; delete from user --  

    2、防御

    防字符串攻击:

    Comm.CommandText = " select * from Users where  UserName = @a";  //利用@占位符占一个位置

    Comm.Parameters.Clear();  //清空内容

    Comm.Parameters.Add("@a", username);  //username用户输入的内容,输入什么就是什么,不会被当成代码执行

  • 相关阅读:
    【缓存】缓存穿透、缓存并发、热点缓存解决方案
    【缓存】redis缓存设计
    【AOP】Spring AOP 和 AspectJ
    disruptor
    Spring Boot application starters
    【日志】log4j2 yml
    PHP中间件--ICE
    docker 简单入门(一)
    redis、memcache和mongodb各自的优缺点是什么
    MYSQL三大范式
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/7828693.html
Copyright © 2011-2022 走看看