C#对MySQL数据库进行增删改查操作(该操作还有防止MySQL注入功能)

使用C#操作MySQL数据库需要注意的问题是要引用mysql.data.dll数据库文件,同时也要注意当前使用的VS版本,如果是VS2010以上的版本,建议使用高版本(4.0版本)的mysql.data.dll,反之,则使用低版本(2.0版本)的mysql.data.dll。同时也要注意当前使用的MySQL版本和mysql.data.dll版本相接近,防止代码编译的时候出错或是结果不对。
在这里插入图片描述
这是我使用MySQL Workbench所创建出来的数据库:
数据库名称test007,表名user,表中的字段有主键的字段id(已经设置自动增长AI),以及普通字段的username和password三个字段。
在这里插入图片描述
接下来,重头戏来了,就是我使用C#对数据库的增删改查操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Data;

namespace 数据库连接
{
    class Program
    {
        static void Main(string[] args)
        {
        	/*Database就是要连接的数据库;Data Source=127.0.0.1就是指的本机的IP地址;
        	port指的是MySQL安装的时候所指定的端口号;user就是登陆MySQL时候的用户名;
        	pwd就是指登陆MySQL时候的密码;charset指的是设置数据库的编码格式*/
            string connStr = "Database=test007;Data Source=127.0.0.1;port=3306;user=okok;pwd=1234;charset=utf8;";
            //构建MySQL连接
            MySqlConnection conn = new MySqlConnection(connStr);

            //打开连接
            conn.Open();

            #region 数据库查询
            //数据库连接应该执行的语句
           /* MySqlCommand cmd = new MySqlCommand("select * from user", conn);

            //从数据库中读出数据
            MySqlDataReader reader = cmd.ExecuteReader();

            //reader.HasRows是判断要读出的行是不是存在数据     每次读出一行返回true,如果这一行没数据的话返回false
            while(reader.Read())
            { 
                //数据每次读出一行,就调用一次Read()方法
                string username = reader.GetString("username");
                string password = reader.GetString("password");
                Console.WriteLine(username + ":" + password);
            }

            reader.Close();*/
            #endregion

            #region   数据库插入
            //string w1 = "addwe";
            //string w2 = "efffd";       
            这种方式插入的数据,还存在SQL注入的问题,就是变量有可能就是一个SQL命令  这种方式不推荐使用
            MySqlCommand cmd = new MySqlCommand("insert into user set username = ' "+username+" ' "+",password=' " + password + " ' ",conn);

            //MySqlCommand cmd = new MySqlCommand("insert into user set username = @a1 , password = @a2 ", conn);

            cmd.Parameters["a1"].Value = username;
            //cmd.Parameters.AddWithValue("a1",w1);

            cmd.Parameters["a2"].Value = password;
            //cmd.Parameters.AddWithValue("a2",w2);

            //cmd.ExecuteNonQuery();
            #endregion

            #region 数据库删除
            //MySqlCommand cmd = new MySqlCommand("delete from user where id = @id", conn);
            //cmd.Parameters.AddWithValue("id", 19);

            //cmd.ExecuteNonQuery();
            #endregion

            #region     数据库修改
            MySqlCommand cmd = new MySqlCommand("update user set password=@pwd where id = 20", conn);

            cmd.Parameters.AddWithValue("@pwd", "111");

            cmd.ExecuteNonQuery();
            #endregion

            conn.Close();

            Console.ReadKey();
        }
    }


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Defining the Future

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值