C# 删除表时,ExecuteOnQuery将返回什么?

C# 删除表时,ExecuteOnQuery将返回什么?,c#,sql,mysql,executenonquery,C#,Sql,Mysql,Executenonquery,假设我们通过ExecuteOnQuery执行一个DROP表X,并且一切都正常运行,它将返回什么?它将返回-1 根据MSDN 您可以使用ExecuteOnQuery执行目录操作,例如,查询数据库的结构或创建数据库对象(如表),或者通过执行UPDATE、INSERT或DELETE语句更改数据库中的数据而不使用数据集。 尽管ExecuteOnQuery不返回任何行,但映射到参数的任何输出参数或返回值都会填充数据。 对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新

假设我们通过ExecuteOnQuery执行一个DROP表X,并且一切都正常运行,它将返回什么?

它将返回-1

根据MSDN

您可以使用ExecuteOnQuery执行目录操作,例如,查询数据库的结构或创建数据库对象(如表),或者通过执行UPDATE、INSERT或DELETE语句更改数据库中的数据而不使用数据集。 尽管ExecuteOnQuery不返回任何行,但映射到参数的任何输出参数或返回值都会填充数据。 对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也是-1

它将返回-1

根据MSDN

您可以使用ExecuteOnQuery执行目录操作,例如,查询数据库的结构或创建数据库对象(如表),或者通过执行UPDATE、INSERT或DELETE语句更改数据库中的数据而不使用数据集。 尽管ExecuteOnQuery不返回任何行,但映射到参数的任何输出参数或返回值都会填充数据。 对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也是-1


这必须是一个最清晰的非琐碎的例子,其中“尝试并找出它”是一个非常合适的答案。这必须是一个最清晰的非琐碎的例子,其中“尝试并找出它”是一个非常合适的答案。好吧,这是一个非常好的答案,有很好的文档记录,所有的东西,但是,当测试成功删除表和成功更新表时,它恰好返回0/:我认为MSDN没有太多关于MySQL see标记的文档。好吧,这是一个很好的答案,有很好的文档记录,但是,当测试成功删除表和成功更新表时,它恰好返回0/:我认为MSDN没有太多关于MySQL see标记的文档。