使用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();
}
}
}