而在众多数据库管理系统中,MySQL凭借其开源、高性能、易扩展等特性,成为了众多开发者的首选
C,作为微软推出的强大编程语言,以其面向对象、类型安全、垃圾回收等特点,在桌面应用、Web服务、游戏开发等多个领域大放异彩
将C与MySQL结合,不仅能够开发出高效、稳定的应用程序,还能充分利用两者的优势,实现数据的灵活操作与高效管理
本文将深入探讨如何使用C连接MySQL数据库,并进行基本的创建、读取、更新、删除(CRUD)操作,带领读者从入门到实践,掌握这一关键技能
一、环境准备 在开始之前,确保你的开发环境已经安装了以下必要软件: 1.Visual Studio:微软官方的集成开发环境(IDE),支持C等多种编程语言,提供了强大的调试和测试工具
2.MySQL Server:从MySQL官方网站下载安装适用于你操作系统的MySQL Server版本
3.MySQL Connector/NET:这是MySQL官方提供的.NET连接器,允许C应用通过ADO.NET接口与MySQL数据库通信
4.MySQL Workbench(可选):一个可视化的数据库设计和管理工具,方便创建数据库、表以及执行SQL查询
二、创建MySQL数据库与表 首先,我们需要通过MySQL Workbench或命令行工具创建一个数据库和表
假设我们要创建一个名为`SchoolDB`的数据库,并在其中创建一个`Students`表,表结构如下: -`StudentID`(INT, PRIMARY KEY, AUTO_INCREMENT) -`FirstName`(VARCHAR(50)) -`LastName`(VARCHAR(50)) -`Age`(INT) -`EnrollmentDate`(DATE) sql CREATE DATABASE SchoolDB; USE SchoolDB; CREATE TABLE Students( StudentID INT AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(50) NOT NULL, LastName VARCHAR(50) NOT NULL, Age INT, EnrollmentDate DATE ); 三、配置C项目以连接MySQL 1.新建C# 项目:在Visual Studio中创建一个新的控制台应用程序或Windows Forms应用程序
2.添加MySQL Connector/NET引用: -右键点击项目 -> “管理NuGet程序包”
-搜索`MySql.Data`并安装最新版本
3.编写连接字符串:在代码中定义一个连接字符串,用于指定数据库服务器的地址、端口、数据库名、用户名和密码
csharp string connectionString = server=localhost;port=3306;database=SchoolDB;user=root;password=yourpassword;; 四、执行CRUD操作 接下来,我们将通过C代码实现对学生表的CRUD操作
1. 创建连接并打开 csharp using MySql.Data.MySqlClient; // 创建并打开连接 using(MySqlConnection conn = new MySqlConnection(connectionString)) { try { conn.Open(); // 执行数据库操作 } catch(Exception ex) { Console.WriteLine(Error: + ex.Message); } } 2.插入数据(Create) csharp string insertQuery = INSERT INTO Students(FirstName, LastName, Age, EnrollmentDate) VALUES(@FirstName, @LastName, @Age, @EnrollmentDate); using(MySqlCommand cmd = new MySqlCommand(insertQuery, conn)) { cmd.Parameters.AddWithValue(@FirstName, John); cmd.Parameters.AddWithValue(@LastName, Doe); cmd.Parameters.AddWithValue(@Age,20); cmd.Parameters.AddWithValue(@EnrollmentDate, DateTime.Now); int rowsAffected = cmd.ExecuteNonQuery(); Console.WriteLine(${rowsAffected} rows inserted.); } 3. 查询数据(Read) csharp string selectQuery = SELECTFROM Students; using(MySqlCommand cmd = new MySqlCommand(selectQuery, conn)) using(MySqlDataReader reader = cmd.ExecuteReader()) { while(reader.Read()) { int id = reader.GetInt32(StudentID); string firstName = reader.GetString(FirstName); string lastName = reader.GetString(LastName); int age = reader.GetInt32(Age); DateTime enrollmentDate = reader.GetDateTime(EnrollmentDate); Console.WriteLine($ID:{id}, Name:{firstName}{lastName}, Age:{age}, Enrollment Date:{enrollmentDate}); } } 4. 更新数据(Update) csharp string updateQuery = UPDATE Students SET Age = @Age WHERE StudentID = @StudentID; using(MySqlCommand cmd = new MySqlCommand(updateQuery, conn)) { cmd.Parameters.AddWithValue(@Age,21); cmd.Parameters.AddWithValue(@StudentID,1); int rowsAffected = cmd.ExecuteNonQuery(); Console.WriteLine(${rowsAffected} rows updated.); } 5. 删除数据(Delete) csharp string deleteQuery = DE