豆豆酱的C#笔记之MySQL(连接及简单使用)(一)
十分感谢众多坛友的支持以及论坛对我的信任。我豆豆酱并非什么大神,只希望成为“新人王”,为新手撰写帖子,将生涩的技术内容讲解得更加活泼易懂。话不多说,下面进入正题。今天将简单介绍C#与MySQL的组合使用。
由于本文主要聚焦于C#,因此MySQL的安装与配置过程将不再赘述。在C#中连接MySQL,首先需要下载动态库MySql.Data.dll,并在项目中引用它。
1. 与数据库建立连接
以下是本地连接的配置信息,这些信息将在脚本中使用:
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient; // 引用MySQL的动态库
class Program
{
static private string server = "172.16.102.105"; // 配置文件中的连接IP
static private string user = "xiaojian"; // 配置文件中的用户(为了方便,我重建了一个小贱的用户)
static private string password = "123456"; // 配置文件中的密码
static private MySqlConnection _mySqlConnection; // 这是一个连接(一个连接可以包括多个数据库)
static void Main(string[] args)
{
// connectionString包含连接的一些信息
string connectionString = string.Format("server={0};userid={1};password={2}", server, user, password);
// 建立连接
_mySqlConnection = new MySqlConnection(connectionString); // 根据配置文件信息建立连接
_mySqlConnection.Open(); // 打开连接
Console.WriteLine("连接状态:" + _mySqlConnection.State); // 查看连接的状态
_mySqlConnection.Dispose(); // 释放资源
_mySqlConnection.Close(); // 关闭连接
Console.ReadKey(); // 为了保留窗口,与内容无关
}
}
到这一步,我们已经通过xiaojian(用户)和123456(密码)这个账号成功连接上了服务器172.16.102.105。
2. 选择需要操作的数据库
为了让代码思路更加清晰,我们将连接服务器的代码封装到GetConnection函数中,然后通过ChangeDatabase函数来选择要操作的数据库。
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient; // 引用MySQL的动态库
class Program
{
static private string server = "172.16.102.105"; // 配置文件中的数据库IP
static private string user = "xiaojian"; // 配置文件中的用户(为了方便,我重建了一个XiaoJian的用户)
static private string password = "123456"; // 配置文件中的密码
static private MySqlConnection _mySqlConnection; // 这是一个连接
static void Main(string[] args)
{
_mySqlConnection = GetConnection(server, user, password); // 连接数据库的服务器
Console.WriteLine("连接状态:" + _mySqlConnection.State); // 查看连接状态
_mySqlConnection.ChangeDatabase("XiaoJianDatabase"); // 选择需要操作的数据库(XiaoJianDatabase为数据库名,MySql大小写不敏感)
Console.WriteLine("当前数据库:" + _mySqlConnection.Database); // 查看当前选择的数据库
_mySqlConnection.Dispose(); // 释放资源
_mySqlConnection.Close(); // 关闭连接
Console.ReadKey(); // 为了保留窗口,与内容无关
}
// 连接服务器
public static MySqlConnection GetConnection(string server, string user, string password)
{
// connectionString包含连接的一些信息
string connectionString = string.Format("server={0};userid={1};password={2}", server, user, password);
// 建立连接
MySqlConnection mySqlConnection = new MySqlConnection(connectionString);
mySqlConnection.Open();
// 返回这个连接
return mySqlConnection;
}
}
这里我们已经选择了XiaoJianDatabase这个数据库,这相当于SQL中的USE XiaoJianDatabase操作。
3. 数据库中的简单操作
在执行操作前,我们需要编写一个通用的执行SQL语句的函数:
// 执行Sql命令
public static MySqlDataAdapter DoSQLCommand(string SqlCommand, MySqlConnection mySqlConnection)
{
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(SqlCommand, mySqlConnection);
return mySqlDataAdapter;
}
(1)SHOW TABLES 查询所有表
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient; // 引用MySQL的动态库
using System.Data; // DataSet类的引用
class Program
{
static private string _server = "172.16.102.105"; // 配置文件中的数据库IP
static private string _user = "xiaojian"; // 配置文件中的用户(为了方便,我重建了一个XiaoJian的用户)
static private string _password = "123456"; // 配置文件中的密码
static private string _sqlCommand = "SHOW TABLES"; // 需要执行的SQL命令 ***命令都更改这里***
static private MySqlConnection _mySqlConnection; // 这是一个连接
static private MySqlDataAdapter _mySqlDataAdapter; // 数据适配器
static private DataSet _dataSet = new DataSet(); // 数据集
static void Main(string[] args)
{
_mySqlConnection = GetConnection(_server, _user, _password); // 连接数据库的服务器
Console.WriteLine("连接状态:" + _mySqlConnection.State); // 查看连接状态
_mySqlConnection.ChangeDatabase("XiaoJianDatabase"); // 选择需要操作的数据库(XiaoJianDatabase为数据库名)
Console.WriteLine("当前数据库:" + _mySqlConnection.Database); // 查看当前选择的数据库
// 执行Sql命令
_mySqlDataAdapter = DoSQLCommand(_sqlCommand, _mySqlConnection); // 获取数据适配器
_mySqlDataAdapter.Fill(_dataSet, "USER_TABLE"); // 把数据填充到数据集
// 遍历结果集
for (int i = 0; i < _dataSet.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < _dataSet.Tables[0].Columns.Count; j++)
{
Console.WriteLine(_dataSet.Tables[0].Rows.ItemArray[j]);
}
}
_mySqlConnection.Dispose(); // 释放资源
_mySqlConnection.Close(); // 关闭连接
Console.ReadKey(); // 为了保留窗口,与内容无关
}
// 连接服务器
public static MySqlConnection GetConnection(string server, string user, string password)
{
// connectionString包含连接的一些信息
string connectionString = string.Format("server={0};userid={1};password={2}", server, user, password);
// 建立连接
MySqlConnection mySqlConnection = new MySqlConnection(connectionString);
mySqlConnection.Open();
// 返回这个连接
return mySqlConnection;
}
// 执行Sql命令
public static MySqlDataAdapter DoSQLCommand(string SqlCommand, MySqlConnection mySqlConnection)
{
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(SqlCommand, mySqlConnection); // 构造数据适配器
return mySqlDataAdapter; // 返回适配器
}
}
(2)查询USER_TABLE表中的所有数据
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient; // 引用MySQL的动态库
using System.Data; // DataSet类的引用
class Program
{
static private string _server = "172.16.102.105"; // 配置文件中的数据库IP
static private string _user = "xiaojian"; // 配置文件中的用户(为了方便,我重建了一个XiaoJian的用户)
static private string _password = "123456"; // 配置文件中的密码
static private string _sqlCommand = "SELECT * FROM USER_TABLE"; // 需要执行的SQL命令 ***所有命令都更改这里***
static private MySqlConnection _mySqlConnection; // 这是一个连接
static private MySqlDataAdapter _mySqlDataAdapter; // 数据适配器
static private DataSet _dataSet = new DataSet(); // 数据集
static void Main(string[] args)
{
_mySqlConnection = GetConnection(_server, _user, _password); // 连接数据库的服务器
Console.WriteLine("连接状态:" + _mySqlConnection.State); // 查看连接状态
_mySqlConnection.ChangeDatabase("XiaoJianDatabase"); // 选择需要操作的数据库(XiaoJianDatabase为数据库名)
Console.WriteLine("当前数据库:" + _mySqlConnection.Database); // 查看当前选择的数据库
// 执行Sql命令
_mySqlDataAdapter = DoSQLCommand(_sqlCommand, _mySqlConnection); // 获取数据适配器
_mySqlDataAdapter.Fill(_dataSet, "USER_TABLE"); // 把数据填充到数据集
// 遍历结果集
for (int i = 0; i < _dataSet.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < _dataSet.Tables[0].Columns.Count; j++)
{
Console.WriteLine(_dataSet.Tables[0].Rows.ItemArray[j]);
}
}
_mySqlConnection.Dispose(); // 释放资源
_mySqlConnection.Close(); // 关闭连接
Console.ReadKey(); // 为了保留窗口,与内容无关
}
// 连接服务器
public static MySqlConnection GetConnection(string server, string user, string password)
{
// connectionString包含连接的一些信息
string connectionString = string.Format("server={0};userid={1};password={2}", server, user, password);
// 建立连接
MySqlConnection mySqlConnection = new MySqlConnection(connectionString);
mySqlConnection.Open();
// 返回这个连接
return mySqlConnection;
}
// 执行Sql命令
public static MySqlDataAdapter DoSQLCommand(string SqlCommand, MySqlConnection mySqlConnection)
{
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(SqlCommand, mySqlConnection); // 构造数据适配器
return mySqlDataAdapter; // 返回适配器
}
}
若要更改查询的SQL代码,直接修改_sqlCommand的值即可。
今天的数据库操作仅介绍这两个查询语句,增删改操作将在后续文章中补充。由于数据库相关内容较多,我要为每一项操作都给出示例可能会比较耗时,希望大家能够理解!感谢大家的支持!