Zdá se, že se jedná o chybu v Connectoru/NET, podobnou chybě 75301
ale trochu jinak. Když se pokouší určit metadata parametru pro proceduru, nejprve vytvoří MySqlSchemaCollection s názvem Procedures se všemi metadata o postupu. (Toto je SELECT * FROM information_schema.routines WHERE 1=1 AND routine_schema LIKE 'Spike' AND routine_name LIKE 'TestAccess' dotaz, který vidíte ve svém protokolu.)
Spike uživatelský účet nemá oprávnění ke čtení ROUTINE_DEFINITION sloupec, takže je NULL . Connector/NET očekává, že toto pole nebude NULL, a vyvolá SqlNullValueException výjimka se to pokouší přečíst.
Existují dvě řešení:
1) První, co jste objevili, je nastavit CheckParameters=False ve vašem připojovacím řetězci. To zakáže načítání metadat uložené procedury (předejde se tak havárii), ale může to vést k obtížnějším laditelným problémům s voláním jiných uložených procedur, pokud přesně nezjistíte pořadí a typ parametrů. (Connector/NET je již nemůže mapovat pomocí metadat.)
2) Přepněte na jinou knihovnu ADO.NET MySQL, která tuto chybu neobsahuje:MySqlConnector na NuGet . Je vysoce kompatibilní s Connector/NET, funguje rychleji a opravuje spoustu známé problémy .