当与MySQL数据库建立连接后,下一步是执行所需的数据库操作。这可以通过使用MySqlCommand
对象。
您将看到如何创建一个MySqlCommand
对象。在它被创建之后,有三个主要的方法你可以调用:
ExecuteReader
查询数据库信息。返回的结果通常是MySqlDataReader
创建的对象,ExecuteReader
.ExecuteNonQuery
插入、更新和删除数据。ExecuteScalar
返回单个值。
一次MySqlCommand
对象已创建时,您将调用它上面的一个前面的方法来执行数据库操作,例如执行查询。结果通常返回到MySqlDataReader
对象,然后进行处理,例如显示结果。下面的代码演示了如何做到这一点。
使用系统;使用System.Data;使用MySql.Data;使用MySql.Data.MySqlClient;public class Tutorial2 {public static void Main() {string connStr = "server=localhost;user=root;database=world;port=3306;password=******";MySqlConnection conn = new MySqlConnection(connStr);尝试{控制台。WriteLine(“连接到MySQL…”);conn.Open ();string sql = "SELECT Name, HeadOfState FROM Country WHERE Continent='Oceania'"; MySqlCommand cmd = new MySqlCommand(sql, conn); MySqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(rdr[0]+" -- "+rdr[1]); } rdr.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); Console.WriteLine("Done."); } }
创建并打开连接后,代码将创建一个MySqlCommand
对象。然后将要执行的SQL查询传递给MySqlCommand
构造函数。的ExecuteReader
方法,然后用于生成MySqlReader
对象。的MySqlReader
对象包含在命令对象上执行的SQL生成的结果。一旦在a中得到结果MySqlReader
对象,则可以对结果进行处理。在本例中,信息由而
循环。最后,MySqlReader
对象通过运行其关闭
方法。
在下一个示例中,您将看到如何使用ExecuteNonQuery
方法。
执行操作的过程ExecuteNonQuery
方法调用更简单,因为不需要创建对象来存储结果。这是因为ExecuteNonQuery
仅用于插入、更新和删除数据。的简单更新国家
表:
使用系统;使用System.Data;使用MySql.Data;使用MySql.Data.MySqlClient;public class Tutorial3 {public static void Main() {string connStr = "server=localhost;user=root;database=world;port=3306;password=******";MySqlConnection conn = new MySqlConnection(connStr);尝试{控制台。WriteLine(“连接到MySQL…”);conn.Open ();string sql = "INSERT INTO Country (Name, HeadOfState,大洲)VALUES ('Disneyland','Mickey Mouse', 'North America')"; MySqlCommand cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); Console.WriteLine("Done."); } }
查询被构造,命令对象被创建ExecuteNonQuery
方法在命令对象上调用。您可以使用mysql命令解释器并验证更新是否正确执行。
最后,您将看到如何ExecuteScalar
方法可用于返回单个值。这很简单,作为MySqlDataReader
对象不需要存储结果,一个简单的变量就可以了。下面的代码说明了如何使用ExecuteScalar
:
使用系统;使用System.Data;使用MySql.Data;使用MySql.Data.MySqlClient;public class Tutorial4 {public static void Main() {string connStr = "server=localhost;user=root;database=world;port=3306;password=******";MySqlConnection conn = new MySqlConnection(connStr);尝试{控制台。WriteLine(“连接到MySQL…”);conn.Open ();string sql = "SELECT COUNT(*) FROM Country"; MySqlCommand cmd = new MySqlCommand(sql, conn); object result = cmd.ExecuteScalar(); if (result != null) { int r = Convert.ToInt32(result); Console.WriteLine("Number of countries in the world database is: " + r); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); Console.WriteLine("Done."); } }
类中的行数国家
表格结果是通过调用获得的ExecuteScalar
在命令对象上。