在本文中,将探讨如何使用C#语言和MySQL Connector/NET 5.1.7来连接MySQL数据库,并执行一些基本的数据库操作。MySQL是一个广泛使用的开源关系数据库管理系统,以其快速、易用和免费的特点而受到欢迎。
首先,需要下载并安装MySQL Server 5.1.31 Community Edition。如果是第一次下载MySQL,请确保同时下载MySQL GUI Tools和MySQL Connector/NET 5.1,后者将允许从C#连接到任何创建的MySQL数据库。如果需要安装帮助,请参考网站上提供的安装指南。
将简要介绍如何在MySQL中创建一个简单的数据库。首先,启动MySQL命令行客户端,并输入在安装过程中提供的密码。之后,将看到mysql>命令提示符。尝试输入以下命令查看结果:
mysql> SHOW DATABASES;
这个命令会列出用户会话拥有权限的所有数据库。现在,让输入以下命令来创建数据库:
mysql> CREATE DATABASE shop;
创建数据库后,它不会默认被选中;需要明确使用USE
mysql> CREATE TABLE article (
article_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
article_name VARCHAR(50),
article_price DOUBLE(16,2),
PRIMARY KEY (article_id)
);
创建表后,可以使用DESCRIBE命令来查看表的结构,插入数据到表中,以及查询表中的数据。
为了能够从C#操作任何MySQL数据库中的数据,需要引用MySql.Data程序集,该程序集在安装MySQL Connector/NET后注册到全局程序集缓存中。首先,在Visual C#中创建一个新的控制台应用程序项目。
在VisualC#IDE的解决方案资源管理器中,右键单击引用文件夹并选择“添加引用...”。在出现的“添加引用”对话框中,从列表中选择MySQL.Data项。
接下来,需要在代码中添加以下语句:
using MySql.Data.MySqlClient;
using System;
using System.Data;
using MySql.Data.MySqlClient;
namespace MySQLDBConnection {
class Program {
static void Main(string[] args) {
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.Add("Database", "shop");
connBuilder.Add("Data Source", "localhost");
connBuilder.Add("User Id", "root");
connBuilder.Add("Password", "masterkey");
MySqlConnection connection = new MySqlConnection(connBuilder.ConnectionString);
MySqlCommand cmd = connection.CreateCommand();
connection.Open();
// 在这里编写对数据库进行操作的代码,例如查询或插入表中的行
connection.Close();
}
}
}
注意,选择使用MySqlConnectionStringBuilder类而不是将所有连接项放入一个单独的字符串中。这提高了代码的可读性和可维护性。
现在,让在Program类中创建以下两个方法。一个用于读取正在工作的表的内容,另一个用于向其中添加新数据。
public static void QueryCommand(MySqlCommand cmd) {
cmd.CommandText = "SELECT * FROM article";
cmd.CommandType = CommandType.Text;
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()) {
Console.WriteLine(String.Format("{0}, {1}, {2}", reader.GetInt32(0), reader.GetString(1), reader.GetDouble(2)));
}
reader.Close();
}
public static void InsertCommand(MySqlCommand cmd, string name, double price) {
cmd.CommandText = "append_data";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new MySqlParameter("param_name", name));
cmd.Parameters.Add(new MySqlParameter("param_price", price));
cmd.ExecuteNonQuery();
}
现在让在connection.Open()和connection.Close()语句之间添加一些代码,以对数据库执行一些基本操作。
InsertCommand(cmd, "MQ95 Flat Monitor", 399.00);
QueryCommand(cmd);