如果是第一次用这个,要先安装一个东西。
在visual studio里面创建项目,右键点击项目名,点击nuget程序包:
会出现这个界面:需要安装MySQL。data,没有安装的到浏览里面找。
好,把这个资源安装好后就可以开始了,因为项目里还有很多地方要连接数据库,我就把连接数据库的方法写到了一个类里,这样用的时候就可以直接创建对象就好了。
右键点击项目名,新建项,选择C#类:
我的起名为MySQL,名字随意, 类里面自己写一个方法,public MySqlConnection 方法名
//方式一
//需要创建MySQLConnection对象
public MySqlConnection connection()
{
//记录连接的信息
String connetStr = "server=127.0.0.1;port=3306;user=root;password=123456; database=LMS;";
//创建数据库连接
MySqlConnection con = new MySqlConnection(connetStr);
//打开连接
con.Open();
Console.WriteLine("数据库连接成功");
return con;
}
注意,这里的字符串connetStr信息每人是不一样的,是由你自己的服务器地址,端口,用户和密码 构成的。查看这些信息可以参考:(5条消息) 查看自己的Mysql数据库server和port端口信息_快阁东西倚晚晴的博客-CSDN博客_mysql server端口
注意这个方法有返回值的,返回值为MySqlConnection类型。方法里用MySqlConnection创造了一个对象con, 创建时将记录连接信息的字符串connetStr作为参数传入了con对象中。如果连接成功则可以调用方法open来打开连接:con.Open();同样的可以通过方法close()来关闭连接:con.Close();
整个代码如下:
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LMS
{
class MySQL
{
//方式一
//需要创建MySQLConnection对象
public MySqlConnection connection()
{
String connetStr = "server=127.0.0.1;port=3306;user=root;password=123456; database=LMS;";
//创建数据库连接
MySqlConnection con = new MySqlConnection(connetStr);
//打开连接
con.Open();
Console.WriteLine("数据库连接成功");
return con;
}
//方式二
//mysql类实例化后直接调用
public MySqlConnection createConnection()
{
MySqlConnectionStringBuilder scsb = new MySqlConnectionStringBuilder();
scsb.UserID = "root";
scsb.Server = "127.0.0.1";
scsb.Port = 3306;
scsb.Password = "123456";
scsb.Database = "test";
MySqlConnection mySqlConnection = new MySqlConnection(scsb.ConnectionString);
mySqlConnection.Open();
Console.WriteLine("数据库连接成功!");
return mySqlConnection;
}
}
}
方法二没有什么参考价值,区别就是创建一个MySqlConnectionStringBuilder类的对象scsb,有意思的是,这个类里面已经定义好了数据库连接所需要的各种参数,只需要设置一下就好了。最后还是要创建一个连接对象,并将参数scsb.connectionstring传到里面。
使用连接:
MySQL mySQL = new MySQL();
MySqlConnection con; //创建数据库连接
//打开数据库连接
con = mySQL.connection();
//关闭数据库连接
con.Close();
这样,就成功连接到MySQL数据库并打开了连接,后面就可以对数据库进行增删改查等一系列操作了。
二更,封装执行sql语句的方法。
后来发现项目里太多重复的代码段了,将这些方法封装再Mysql类中。主要是有返回值Idatareader类的查询方法,和无返回值的非查询方法。方法reader()传入参数为指令字符串str和打开的数据库连接con,方法execute()传入参数 为指令字符串str和打开的数据库连接con。
代码如下:
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LMS
{
class MySQL
{
//创建MySQLConnection对象
public MySqlConnection connection()
{
String connetStr = "server=127.0.0.1;port=3306;user=root;password=985211; database=LMS;";
//创建数据库连接
MySqlConnection con = new MySqlConnection(connetStr);
//打开连接
con.Open();
Console.WriteLine("数据库连接成功");
return con;
}
//创建数据读取器
//传入参数:sql查询语句 , 打开的数据库连接con
public IDataReader reader(string str,MySqlConnection con)
{
MySqlCommand cmd = new MySqlCommand(str,con); //创建命令
cmd.CommandType = System.Data.CommandType.Text; //设置命令类型
return cmd.ExecuteReader(); //执行命令,返回一个IdataReader类型
}
//指令执行
//传入参数:sql查询语句 , 打开的数据库连接con
public void execute(string str, MySqlConnection con)
{
MySqlCommand cmd = new MySqlCommand(str, con);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery(); //执行非查询指令
}
//方式二
//mysql类实例化后直接调用
public void createConnection()
{
MySqlConnectionStringBuilder scsb = new MySqlConnectionStringBuilder();
scsb.UserID = "root";
scsb.Server = "127.0.0.1";
scsb.Port = 3306;
scsb.Password = "985211";
scsb.Database = "test";
MySqlConnection mySqlConnection = new MySqlConnection(scsb.ConnectionString);
mySqlConnection.Open();
Console.WriteLine("数据库连接成功!");
}
}
}