版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33574890/article/details/84678291
前言
- 以前在学习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();