10bet网址
MySQL连接器/NET开发指南
相关的文档10bet官方网站 本手册下载

6.1.2 MySqlCommand对象

当与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在命令对象上。