哪些MySQL语句需要使用MySqlDataReader对象
本文关键字:MySqlDataReader 对象 MySQL 语句 哪些 | 更新日期: 2023-09-27 18:01:51
以编程方式访问MySQL服务器时,有两种类型的语句:
- 返回结果集的语句(如
SELECT
),需要使用MySqlDataReader
; - 不返回结果集的语句(如
UPDATE
),因此可以通过MySqlCommand
对象执行而不需要MySqlDataReader
在返回结果集的语句上使用MySqlCommand
会导致MySQL驱动程序异常,同样地,当MySqlDataReader
与不返回结果集的语句一起使用时,也会发生同样的事情。
为了让一个函数可以执行两种类型的语句,我需要过滤哪些语句需要使用MySqlCommand
和MySqlDataReader
。我的计划是创建一个数组,其中包含需要处理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
}
}
}
因为这里有一个很大的谜语,你的问题并不像看起来那么愚蠢-这里是返回数据的方法,通常由大多数语言表示为某种可用的结构:
-
SELECT
(你知道如何使用) -
SHOW
(例如SHOW VARIABLES LIKE '%innodb%'
或SHOW PROCESSLIST
、SHOW CREATE TABLE yourtable
) -
DESCRIBE
示例:DESCRIBE yourtable
;
免责声明:这些是我目前能记住的,可能还有更多,如果我错过了什么,请随时更新列表