首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql.Data.MySqlClient.MySqlException (0x80004005):对于表“bogus_table”,选择拒绝用户'XXX'@'YYY‘的命令

MySql.Data.MySqlClient.MySqlException (0x80004005):对于表“bogus_table”,选择拒绝用户'XXX'@'YYY‘的命令
EN

Stack Overflow用户
提问于 2018-05-18 08:50:53
回答 2查看 2.7K关注 0票数 5

我使用Dapper来调用MySql存储过程。这个过程执行得很好,但是在那之后代码会抛出一个异常。有问题的代码块如下所示:

代码语言:javascript
复制
    using (var conn = DataFactory.InitializeConnection(false))
    {
        conn.Query("ProcedureName", new
        {
            puserid = ID
        }, commandType: System.Data.CommandType.StoredProcedure);
    }

其中DataFactory是以下静态类:

代码语言:javascript
复制
public static class DataFactory
{
    public static IDbConnection InitializeConnection(bool open = true, string connectionstring = "", string databaseServerType = "MYSQL")
    {
        if (string.Equals(databaseServerType, "MYSQL"))
        {
            if (string.IsNullOrEmpty(connectionstring))
                connectionstring = Settings.Default.DataConnectionString;
            var csb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder(connectionstring);
            var conn = new MySql.Data.MySqlClient.MySqlConnection(csb.ConnectionString);
            Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;

            if (open)
                conn.Open();
            return conn;
        }
        throw new NotImplementedException("Not implemented for your database provider");
    }
}

我的数据库中没有bogus_table,它显示在错误消息中:

MySql.Data.MySqlClient.MySqlStream.ReadPacket() (0x80004005):选择拒绝用户'XXX'@'YYY‘的命令,用于MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow的表'bogus_table',MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId的Int64 64& insertedId),(布尔力)( MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior行为)在MySql.Data.MySqlClient.MySqlDataReader.ClearKillFlag() at MySql.Data.MySqlClient.MySqlDataReader.Close() at MySql.Data.MySqlClient.MySqlDataReader.Dispose(Boolean处理) 在MySql.Data.MySqlClient.MySqlDataReader.Dispose() at Dapper.SqlMapper.d__1361.<>m__Finally1() at Dapper.SqlMapper.<QueryImpl>d__1361.MoveNext()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-18 09:10:21

这可能是Mysql驱动程序实现中的问题;下面是提到表格的代码块。如果您的过程有空的结果,尝试使用Execute调用(因为它在内部实现了执行非查询),而不是查询。

代码语言:javascript
复制
using (var conn = DataFactory.InitializeConnection(false))
    {
        conn.Execute("ProcedureName", new
        {
            puserid = ID
        }, commandType: System.Data.CommandType.StoredProcedure);
    }
票数 3
EN

Stack Overflow用户

发布于 2022-09-17 15:05:28

我遇到了类似于“bogus_table”的问题,它确实来自于MySql代码!

代码语言:javascript
复制
MySql.Data.MySqlClient.MySqlException: 'Table 'myspector.bogus_table' doesn't exist'

您可能处于调试模式,启用了所有异常。当此异常引发时,请取消选中“抛出此异常时的中断”,如下所示:

然后,重新启动/继续,您将看到这个异常是由堆栈中的另一个异常处理程序捕获的:它是转换成一个经典的InvalidOperationException。

代码语言:javascript
复制
    {"Sequence contains no elements"}   System.Exception {System.InvalidOperationException}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50407365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档