C#操作MySql数据库

2 篇文章 0 订阅

一、MySQL数据库导入导出

在使用MySQL数据库时经常需要导入导出操作,导入导出操作可以在命令行终端进行,Windows系统下打开cmd命令行工具,进入到MySQL安装目录下,进入bin文件夹,文件夹中有一系列可执行程序,如下图所示:
在这里插入图片描述

然后在cmd中输入如下命令将数据库导出,其中database01为要导出的数据库名称,D:/backup.sql为导出的文件路径。

mysqldump -u root -p -d database01 > D:/backup.sql

上面命令仅导出database01数据库结构,包括包含的表结构,而不会导出存储的数据,如果需要导出结构及数据,命令如下,即去掉-d:

mysqldump -u root -p database01 > D:/backup.sql

数据库导入操作需要先登录MySQL数据库,然后create一个数据库,use该数据库,然后执行source操作,命令如下:

mysql -u root -p
create database database01;
use database01;
source D:/backup.sql

二、MySQL数据库操作拓展MySql.Data下载

使用C#操作MySQL数据库需要先下载一个拓展,在visual studio中通过NuGet包管理器下载,在搜索框中搜索MySql.Data,如下图所示,安装到解决方案中即可。
在这里插入图片描述

三、C#开启MySQL服务

使用MySQL数据库一般会安装对应的系统服务,该服务会开启3306端口等待数据库连接。一般情况下每次计算机开机后该服务都会开机自启,但有时可能由于一些原因导致服务未正常运行则会造成数据库连接失败。因此需要检查服务是否运行,如未运行则通过代码手动开启,示例代码如下:

using System.ServiceProcess;
...
string mysqlserver = "MySQL";
var serviceControllers = ServiceController.GetServices();
//获取指定服务,若服务状态不是Runing就Start该服务
var server = serviceControllers.FirstOrDefault(service => service.ServiceName == mysqlserver);
if (server == null)
{
    MessageBox.Show("数据库服务未安装,请安装该服务");
    return false;
}
            //Console.WriteLine(server.Status);
if (server != null && server.Status != ServiceControllerStatus.Running)
{
    try
    {
        server.Start();
        Thread.Sleep(3000);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        Thread.Sleep(2000);
        if (server.Status != ServiceControllerStatus.Running)
        {
            try
            {
                server.Start();
                Thread.Sleep(3000);
            }
            catch (Exception ex01)
            {
                MessageBox.Show(ex01.Message);
            }
        }
    }
}

四、C#连接MySQL数据库

使用C#连接数据库需要输入数据库IP地址、端口、用户名和密码四个参数,示例代码如下:

using MySql.Data.MySqlClient;
...
MySqlConnection Conn = null;//数据库连接
if (Conn.State == System.Data.ConnectionState.Open)
{
    MessageBoxResult messageresult = MessageBox.Show("数据库已连接,是否重新进行连接", "提醒", MessageBoxButton.OKCancel, MessageBoxImage.Information);
    if (messageresult == MessageBoxResult.Cancel)
    {
        return;
    }
    else
    {
        Conn.Close();
    }
}
string IP = "127.0.0.1";
string port = "3306";
string user = "用户";
string pwd = "密码";
string connectStr = "server=" + IP + ";port=" + port + ";user=" + user + ";password=" + pwd;
Conn = new MySqlConnection(connectStr);
try
{
    Conn.Open();
    MessageBox.Show("数据库连接成功");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

五、C#读取MySQL数据库

C#读取数据库中数据,示例代码如下:

List<string> idList = new List<string>();
List<string> nameList = new List<string>();
DateTime dt = DateTime.Now;
string str = "select id,name from database01.table01 where id = 1" + " and DT > '" + dt.ToString() + "' and DT<'" + dt.AddDays(1).ToString() + "';";//查询出id为1且日期为今天的数据行
MySqlCommand mySqlCommand = new MySqlCommand(str, Conn);
MySqlDataReader reader = null;
try
{
    reader = mySqlCommand.ExecuteReader();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
    return;
}
while(reader.Read())
{
    idList.Add(reader[0].ToString());//将查询出的数据分字段存储到列表中
    nameList.Add(reader[1].ToString());
}
reader.Dispose();
mySqlCommand.Dispose();

六、C#写入MySQL数据库

C#向数据库中插入数据,示例代码如下:

string str = "insert into database01.table01(id,name,DT) values(@id,@name,@DT)";//向数据库database01的表table01插入数据,table01第一个字段为id,第二个字段为name,第三个字段为DT
MySqlCommand mycmd = new MySqlCommand(str, Conn);
mycmd.Parameters.Add(new MySqlParameter("@id", MySqlDbType.VarChar));//字段类型为可变长度字符串
mycmd.Parameters.Add(new MySqlParameter("@name", MySqlDbType.VarChar));
mycmd.Parameters.Add(new MySqlParameter("@DT", MySqlDbType.DateTime));//字段类型为日期
mycmd.Parameters["@id"].Value = "1";//赋值
mycmd.Parameters["@name"].Value = "kity";
DateTime dateTime = DateTime.Now;
mycmd.Parameters["@DT"].Value = dateTime;
try
{
    mycmd.ExecuteNonQuery();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
    mycmd.Dispose();
	return;
}
mycmd.Dispose();

七、MySQL数据库配置文件修改

MySQL数据库在Linux系统下的配置文件名称为my.cnf,在Windows系统下的名称为my.ini。在使用过程中出于某些原因可能需要对配置文件进行修改,例如在连接数据库时,第一次连接总是超时连接失败,需要重新连接,这可能是因为当前MySQL默认开启了SSL认证,导致连接失败,这时需要在配置文件中关闭SSL。
Windows系统下MySQL配置文件通常在安装根目录的bin文件夹下,文件名为my.ini,打开该文件,在[mysqld]下增加ssl_skip,即如下所示。

[mysqld]
sssl_skip

修改配置文件保存后,重启MySQL服务会发现修改并未起作用,这是因为MySQL只会从几个特定路径读取配置文件,而bin文件夹下的my.ini并不在特定路径之中,可以通过打开cmd,切换到bin文件夹下,输入mysql --help,来查看MySQL预设的配置文件所在路径,如下图所示:
在这里插入图片描述
所以可以将修改后的my.ini文件移动到MySQL安装根目录下或其他上图所示的路径,然后重启MySQL服务,那么修改就会生效了。

参考文档

mysql数据库导入导出
Mysql数据库迁移
C# 向MySQL数据库存储及读取图片、音乐等文件
C# 批量插入数据到mysql数据库
MySQL 中Blob类型数据的插入和读取
mysql查询:有关时间的筛选
C#往SQL数据库字段中插入二进制文件的三种方法
C# DataReader的详细用法
C#实现文件与二进制互转并存入数据库
windows 下 mysql 配置文件不生效

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值