C#对MySql进行增删该查

本文介绍了使用C#连接MySQL数据库的方法,包括防止SQL注入、数据的增删改查等基本操作,通过具体代码示例讲解如何安全地进行数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
  • 以前在学习java的时候,用的一些其它的操作工具包括一些框架
  • 今天使用了C#,做一下总结,当然只是很初级的,后续会补充。
  • 比如锁操作或者事务这些
进行连接
  • 先建立一个连接字符串,标明数据库,ip地址,端口号,然后创建连接并且打开连接
  • 首先需要引入一个程序集
  • 他在你安装的mysql安装目录下面,MySQL.Data.dll
  • using MySql.Data.MySqlClient;
 string connStr = "Database = junglebattle;Data Source = 127.0.0.1;port=3306;user = root; Password = 798969409";
            MySqlConnection conn = new MySqlConnection(connStr);
            conn.Open();
防止sql注入
  • 用字符串拼接的方式很容易发生sql注入问题,比如说这样
  • 注意我在拼接字符串时使用的单引号
  • 这样就会导致用户把我们的数据库删除
string username = "huixing";
            string password = "oibk';delete  from user; ";
          
             MySqlCommand cmd1 = new MySqlCommand("insert into user set username =  ‘ “+username+" ' "+" , password= ' "+password+" ’ ", conn);
            cmd1.Parameters.AddWithValue("jk", username);
            cmd1.Parameters.AddWithValue("pwd", password);

            cmd1.ExecuteNonQuery();
  • 为了解决这种,应该采用下面这种方式
  • jk与pwd是我们自己定义的符号
string username = "huixing";
            string password = "oibk';delete  from user; ";
            MySqlCommand cmd1 = new MySqlCommand("insert into user set username =@jk, password = @pwd", conn);
            cmd1.Parameters.AddWithValue("jk", username);
            cmd1.Parameters.AddWithValue("pwd", password);

            cmd1.ExecuteNonQuery();
删除
  MySqlCommand cmd2 = new MySqlCommand("delete from user where id = @id", conn);
            cmd2.Parameters.AddWithValue("id", 10);
            cmd2.ExecuteNonQuery();
更改
 MySqlCommand cmd3 = new MySqlCommand("update  user set password = @pwd where id = 13", conn);
            cmd3.Parameters.AddWithValue("pwd", "shabi");
            cmd3.ExecuteNonQuery();
查询
  • 在我们获得一个流reader对象后,如果有下一行 reader.reader()就返回true否则就返回false
       MySqlCommand cmd = new MySqlCommand("Select* from user", conn);
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string username1 = reader.GetString("username");
                string pass = reader.GetString("password");
                Console.WriteLine(username1 + ";" + pass);
            }

            reader.Close();
关闭
  • 在数据库操作完毕后,要关闭连接,关闭流
  • reader.close(); conn.close();
C# VS2012 86系统 mysql-5.5.27-win32 功能:利用动软代码生成器 从 数据库表或者视图中生成 的三层结构代码 实现 数据增删改查。 如果可以,请下载资源中 修改 的动软代码生成器 C#模板生成 1、由于之前使用 动软生成 java 网页源码,比较成功,此处编写C#程序时沿用,感觉更加适合。 2、直接调用动软的相关dll和生成的三层代码,可以较快的实现增删改查操作。 3、由于一些dll版本的问题及动软生成器自身的一些不完善,产生了一些问题并找了挺久,所以把可以实现的版本发布出来共享。 前提: 使用的是 mysql数据库时才可能会出现以下问题 问题: 1、MySql.Data.dll 必须是5.6.1以上版本,否则会出现 “向信号量添加给定计数将导致其超出它的最大计数” 的问题。 2、动软代码生成时,必须增加该命名空间 using MySql.Data.MySqlClient; 3、动软代码必须修改 “工具”-“选项”弹出窗 后,点击 ”代码生成设置“-”字段类型映射“-”参数符号“中删除 mysql @,添加mysql ? 4、如果不修改3的设置,在增删改时 参数设置会失败。 5、mysql保存或者修改时,中文会出现乱码,这时必须 在DbHelperMySQL类的 连接字中增加Charset=utf8;即 protected static string connectionString = "Server=localhost;User Id=root;Password=root;Persist Security Info=True;Database=mnzfz;Charset=utf8;"; 6、如果要在局域网中远程访问,请 修改 mysql 权限:grant select,update,insert,delete on *.* to 'root'@'192.168.0.1' identified by "123456";
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值