C#连接MySql数据库进行测试

文章目录

      • 创建测试数据库和表
      • 添加新项目MySqlOperation
      • 查询操作
      • 插入语句
      • 解决Sql注入问题
      • 删除数据
      • 数据更新

创建测试数据库和表

我使用的是Navicat15界面工具,建立JungleWars连接,创建Test数据库,创建user用户信息表,设置id为主键自动增长。并添加三条测试信息。
C#连接MySql数据库进行测试_第1张图片

添加新项目MySqlOperation

为新项目增加MySql.Data.dll动态链接库。第一次使用dll时是不存在的,需要前往官网下载。

查询操作

using System;
using MySql.Data.MySqlClient;

namespace MySqlOperation
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string config = "database=Test;" +
                            "datasource = 127.0.0.1;" +
                            "userid = root;" +
                            "port=3306;" +
                            "password=********";
            MySqlConnection conn = new MySqlConnection(config);
            conn.Open();
            string sql = "select *from user";
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            // 对数据进行读取
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string username = reader.GetString("username");
                string password = reader.GetString("password");
                Console.WriteLine(username + ":" + password);
            }

            reader.Close();
            conn.Close();
        }
    }
}

测试结果
得到了所有用户名和密码

wankcn:wankcn
chenxi:chenxi
wenruo:wenruo

插入语句

string userName = "liuxiyi"; string pwd = "liuxiyi";
string sql = "insert into user set username='"+userName+"', password='"+pwd+"'";
MySqlCommand cmd = new MySqlCommand(sql , conn);
cmd.ExecuteNonQuery();

测试结果查看数据库表中多了一行新插入的数据
C#连接MySql数据库进行测试_第2张图片

解决Sql注入问题

使用传值的方式解决sql注入,恶意语句会被当作值写入表中。

string userName = "wr";
string pwd = "wr123';delete from user";
string sql = "insert into user set username=@un,password=@pwd";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("un", userName);
cmd.Parameters.AddWithValue("pwd", pwd);

C#连接MySql数据库进行测试_第3张图片

删除数据

删除调id为5的那条sql数据。

string sql = "delete from user where id=@id";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("id",5);
cmd.ExecuteNonQuery();

C#连接MySql数据库进行测试_第4张图片

数据更新

id为4的数据密码更新为lover

string sql = "update user set password=@pwd where id=4";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("pwd", "lover");
cmd.ExecuteNonQuery();

C#连接MySql数据库进行测试_第5张图片

你可能感兴趣的:(mysql,数据库)