文章目录
创建测试数据库和表添加新项目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();