C#语言写入MySQL数据库实例
在C#中,我们可以使用ADO.NET来连接和操作MySQL数据库,ADO.NET是.NET Framework中的一个库,它提供了对关系数据库和非关系数据库的访问,在这个例子中,我们将使用ADO.NET来连接MySQL数据库,并执行一些基本的CRUD(创建、读取、更新和删除)操作。
我们需要安装MySQL Connector/NET,这是一个用于连接MySQL数据库的.NET驱动程序,你可以通过NuGet包管理器来安装它。
我们将创建一个C#程序,该程序将连接到MySQL数据库,创建一个表,插入数据,然后查询和显示这些数据。
步骤1:添加必要的命名空间
using System; using System.Data; using MySql.Data.MySqlClient;
步骤2:创建一个连接字符串
连接字符串包含了连接到数据库所需的所有信息,如服务器地址、用户名、密码和数据库名。
string connStr = "server=localhost;user=root;database=test;port=3306;password=******";
步骤3:打开一个数据库连接
使用MySqlConnection
类来创建一个数据库连接,然后调用Open
方法来打开这个连接。
MySqlConnection conn = new MySqlConnection(connStr); conn.Open();
步骤4:创建一个SQL命令
使用MySqlCommand
类来创建一个SQL命令,在这个例子中,我们将创建一个SQL命令来创建一个名为users
的表。
string sql = "CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50))"; MySqlCommand cmd = new MySqlCommand(sql, conn);
步骤5:执行SQL命令
调用ExecuteNonQuery
方法来执行SQL命令。
cmd.ExecuteNonQuery();
步骤6:插入数据
创建一个新的SQL命令来插入数据到users
表中。
sql = "INSERT INTO users (name, email) VALUES (@name, @email)"; cmd = new MySqlCommand(sql, conn); cmd.Parameters.AddWithValue("@name", "John"); cmd.Parameters.AddWithValue("@email", "john@example.com"); cmd.ExecuteNonQuery();
步骤7:查询数据
创建一个新的SQL命令来查询users
表中的所有数据。
sql = "SELECT * FROM users"; cmd = new MySqlCommand(sql, conn); MySqlDataReader reader = cmd.ExecuteReader();
步骤8:显示数据
使用MySqlDataReader
来读取查询结果,并将它们打印到控制台。
while (reader.Read()) { Console.WriteLine("ID: {0}, Name: {1}, Email: {2}", reader["id"], reader["name"], reader["email"]); }
步骤9:关闭数据库连接
不要忘记关闭数据库连接。
conn.Close();
完整的代码如下:
using System; using System.Data; using MySql.Data.MySqlClient; class Program { static void Main() { string connStr = "server=localhost;user=root;database=test;port=3306;password=******"; MySqlConnection conn = new MySqlConnection(connStr); conn.Open(); string sql = "CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50))"; MySqlCommand cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); sql = "INSERT INTO users (name, email) VALUES (@name, @email)"; cmd = new MySqlCommand(sql, conn); cmd.Parameters.AddWithValue("@name", "John"); cmd.Parameters.AddWithValue("@email", "john@example.com"); cmd.ExecuteNonQuery(); sql = "SELECT * FROM users"; cmd = new MySqlCommand(sql, conn); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine("ID: {0}, Name: {1}, Email: {2}", reader["id"], reader["name"], reader["email"]); } conn.Close(); } }
FAQs
Q1:如果我收到“Access denied for user ‘root’@’localhost’”错误,该怎么办?
A1:这个错误通常意味着你的MySQL服务器拒绝了你的连接请求,你需要检查你的连接字符串中的用户名和密码是否正确,如果你忘记了你的MySQL root密码,你可以重置它。
下面我将提供一个简化的例子,展示如何使用C#语言通过MySQL数据库的官方.NET Connector/NET库来写入数据,以下步骤将包括创建一个简单的表并在其中插入数据。
请确保你已经安装了MySQL Connector/Net,你可以通过NuGet包管理器进行安装。
以下是C#代码示例,其中包含了一个介绍创建和写入数据的过程:
using System; using MySql.Data.MySqlClient; class Program { static void Main() { // 定义连接字符串 string connStr = "server=localhost;user id=root;password=yourpassword;database=yourdatabase"; // 创建连接 using (MySqlConnection conn = new MySqlConnection(connStr)) { try { // 打开连接 conn.Open(); // 创建命令对象,用于执行SQL语句 MySqlCommand cmd = new MySqlCommand(); // 设置命令的连接 cmd.Connection = conn; // 创建一个新表 string createTableQuery = @"CREATE TABLE IF NOT EXISTS ExampleTable ( ID INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(50) NOT NULL, Age INT NOT NULL )"; cmd.CommandText = createTableQuery; cmd.ExecuteNonQuery(); // 插入数据 string insertDataQuery = @"INSERT INTO ExampleTable (Name, Age) VALUES (@Name, @Age)"; cmd.CommandText = insertDataQuery; cmd.Parameters.AddWithValue("@Name", "张三"); cmd.Parameters.AddWithValue("@Age", 30); cmd.ExecuteNonQuery(); // 插入另一条数据 cmd.Parameters["@Name"].Value = "李四"; cmd.Parameters["@Age"].Value = 25; cmd.ExecuteNonQuery(); Console.WriteLine("数据插入成功!"); } catch (MySqlException ex) { Console.WriteLine("MySQL 错误:" + ex.Message); } finally { // 确保关闭连接 if (conn != null && conn.State == System.Data.ConnectionState.Open) { conn.Close(); } } } } }
上述代码中:
创建了一个名为ExampleTable
的表,其中包含三个字段:自增的ID
作为主键,字符串类型的Name
,以及整型的Age
。
插入了两个示例数据条目。
使用MySqlDataAdapter
和SqlCommand
来执行SQL命令。
通过try
块来处理可能发生的异常。
请确保:
在运行代码之前替换connStr
变量中的连接字符串参数(如数据库的名称、用户名和密码)。
在数据库中拥有创建表的权限。
请注意,对于生产环境,为了防止SQL注入,应该总是使用参数化查询而不是拼接SQL字符串,上面的示例中已经展示了如何使用参数化查询。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/702803.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复