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

    技术2022-07-12  101

    文章目录

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

    创建测试数据库和表

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

    添加新项目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();

    测试结果查看数据库表中多了一行新插入的数据

    解决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);

    删除数据

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

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

    数据更新

    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();

    Processed: 0.011, SQL: 9