哪些MySQL语句需要使用MySqlDataReader对象

本文关键字:MySqlDataReader 对象 MySQL 语句 哪些 | 更新日期: 2023-09-27 18:01:51

以编程方式访问MySQL服务器时,有两种类型的语句:

  • 返回结果集的语句(如SELECT),需要使用MySqlDataReader;
  • 不返回结果集的语句(如UPDATE),因此可以通过MySqlCommand对象执行而不需要MySqlDataReader

在返回结果集的语句上使用MySqlCommand会导致MySQL驱动程序异常,同样地,当MySqlDataReader与不返回结果集的语句一起使用时,也会发生同样的事情。

为了让一个函数可以执行两种类型的语句,我需要过滤哪些语句需要使用MySqlCommandMySqlDataReader。我的计划是创建一个数组,其中包含需要处理MySqlDataReader的语句,如SELECT,例如以下伪代码:

MySqlResultSet ExecuteStatement(string statement)
{
    string[] statementTypes = { "SELECT", "SHOW", };
    foreach (statementType = statementTypes)
    {
        if (statement.find(statementType){
            //MySqlCommand
            //Returns null.
        }
        else
        {
            //MySqlDataReader
            //Returns the reader
        }
    }
}

哪些MySQL语句需要使用MySqlDataReader对象

因为这里有一个很大的谜语,你的问题并不像看起来那么愚蠢-这里是返回数据的方法,通常由大多数语言表示为某种可用的结构:

  • SELECT(你知道如何使用)
  • SHOW(例如SHOW VARIABLES LIKE '%innodb%'SHOW PROCESSLISTSHOW CREATE TABLE yourtable)
  • DESCRIBE示例:DESCRIBE yourtable;

免责声明:这些是我目前能记住的,可能还有更多,如果我错过了什么,请随时更新列表