解决sql注入问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
namespace MySQL数据库操作
{
    class Program
    {
        static void Main(string[] args)
        {
            string connStr = "Database=test007;Data Source=127.0.0.1;port=3306;User id=root;password=1234;";//指定数据库  所在的IP地址  端口号  用户id  密码   用户名  密码不分大小写  user id 和写成user都可以

            MySqlConnection conn = new MySqlConnection(connStr);//连接数据库 

            conn.Open();//打开连接   这样程序就会和数据库建立连接通道  方便后面的增删改查操作

            #region 查询
            //MySqlCommand cmd = new MySqlCommand("select* from user", conn);//将sql语句传过去
            //MySqlDataReader reader = cmd.ExecuteReader();//执行命令
            //while (reader.Read())//判断是否有数据  有就读取
            //{     
            //    string username = reader.GetString("username");//reader.getstring 方法  参数直接填写列名即可获取数据
            //    string password = reader.GetString("password");
            //    Console.WriteLine(username + ":" + password);
            //}
            //reader.Close();//关闭读取流
            #endregion

            #region 数据库插入
            string username = "LCH";string password = "123';delete from user;";

        //    MySqlCommand cmd = new MySqlCommand("insert into user set username ='"+username+"'"+",password='" + password+"'",conn);//通过字符串组拼的方式组成sql语句  这种方式就会存在sql注入的问题  比如 用户的密码如果是 123';delete from user; 那么就会被当成sql 语句写入  将会出现问题 解决方法入下 

            MySqlCommand cmd = new MySqlCommand("inser into user set username=@un,password = @pwd", conn);

            cmd.Parameters.AddWithValue("un", username);
            cmd.Parameters.AddWithValue("pwd", password);

            cmd.ExecuteNonQuery();//执行插入  ,这个ExecuteNonQuery就是执行跟查询无关的操作
            #endregion
            conn.Close();//关闭连接

            Console.ReadKey();
        }
    }
}

关键代码
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值