【C#】使⽤MySql.Data.dll连接MySQL数据库
准备⼯作
在Visual Studio中新建⼀个C#的控制台应⽤程序。
确保后台已经启⽤了MySQL57服务。
在MySQL的安装路径下到DLL,默认位置是 C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll 。
更多写代码连接MySQL的⽅法(通过MySQLConnector连接器),参考⽂档 C:\Program Files (x86)\MySQL\Connector.NET 6.9\Documentation\ConnectorNET.chm 。在⽂档的Users Guide-Programming中有代码案例。
把MySql.Data.dll引⼊项⽬中。v4.5表⽰.NetFramework框架的版本号,⼀定要保证使⽤的DLL与项⽬的.NetFramework版本⼀致,否则运⾏时报错不到DLL,报错如下:
1>F:\Learning\CSharpConnectMySQL\CSharpConnectMySQL\Program.cs(1,7,1,12): error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)
测试增删改查
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSharpConnectMySQL
{
class Program
{
static void Main(string[] args)
{
// 服务器地址;端⼝号;数据库;⽤户名;密码
string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root"; // ⽤户名和密码在MySQL定义的
// 创建连接
MySqlConnection conn = new MySqlConnection(connectStr);
try
{
// 打开连接
conn.Open();
Console.WriteLine("已经建⽴连接");
//Query(conn); // 测试查询
//Insert(conn); // 测试插⼊
//Update(conn); // 测试更新
//Delete(conn);// 测试删除
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
// 关闭连接
conn.Close();
Console.WriteLine("数据库已关闭");
}
Console.ReadKey();
}
///<summary>
///查询
mysql需要安装documentation///</summary>
///<param name="conn"></param>
private static void Query(MySqlConnection conn)
{
/
/ 创建命令
string sql = "select * from users";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 读取数据
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()) // true表⽰能读取该⾏数据
{
// ⽅式⼀:访问数组
Console.WriteLine(reader[0].ToString() + reader[1].ToString()); // reader[0]是读出来的第⼀列属性
// ⽅式⼆:根据列数
Console.WriteLine(reader.GetInt32(0));
/
/ ⽅式三:根据列名
Console.WriteLine(reader.GetInt32("user_id"));
}
}
///<summary>
///插⼊,增加数据
///</summary>
///<param name="conn"></param>
private static void Insert(MySqlConnection conn)
{
// 创建命令
string sql = "insert into user(user_name, user_pwd) values('asdAa','2345')";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 添加⼀条记录
int result = cmd.ExecuteNonQuery();
Console.WriteLine("数据库中受影响的⾏数 = " + result);
}
///<summary>
///更新,改数据
///</summary>
///<param name="conn"></param>
private static void Update(MySqlConnection conn)
{
// 创建命令
string sql = "update user set user_name = 'newName', user_pwd = '66777' where user_id = '3'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 更新记录
int result = cmd.ExecuteNonQuery();
Console.WriteLine("数据库中受影响的⾏数 = " + result);
}
///<summary>
///删除数据
///</summary>
/
//<param name="conn"></param>
private static void Delete(MySqlConnection conn)
{
// 创建命令
string sql = "delete from user where user_id = '4'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 删除记录
int result = cmd.ExecuteNonQuery();
Console.WriteLine("数据库中受影响的⾏数 = " + result);
}
}
}
传参拼接SQL语句
///<summary>
///验证⽤户名和密码
///</summary>
///<param name="conn"></param>
///<param name="userName"></param>
///<param name="password"></param>
///<returns></returns>
private static bool Verify(MySqlConnection conn, string userName, string password)
{
/
/ ⽅式⼀:组拼sql
//string sql = "select * from user where user_name = '" + userName + "' and user_pwd = '" + password + "'"; //MySqlCommand cmd = new MySqlCommand(sql, conn);
// ⽅式⼆:参数标记
string sql = "select * from user where user_name = @p1 and user_pwd = @p2";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("p1", userName); // 这⾥会根据输⼊的类型,⾃动判断要不要加单引号''
cmd.Parameters.AddWithValue("p2", password);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read()) // 要么查出⼀条数据,要么0条。
{
return true;
}
return false;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论