ADO.NET用于访问我的应用程序中的MySQL数据库。一些存储过程是在室外开发的。我将它们应用到数据库中。尝试访问数据库中的存储过程时,会发生以下异常:
功能your_db.log_insertLogMessage不存在
调用此代码时:
MySqlCommand cmd = CreateCommand(procName, prams);
return cmd.ExecuteNonQuery();
procName是正确设置的字符串。 Prams是MySqlParameter数组。在调试器中,“?”在Visual Studio中展开时,将显示数组值。
似乎无需访问数据库。我将数据库名称更改为虚拟名称,并且对于不存在的数据库有不同的错误。
我删除了所有存储过程,并收到一条新错误,指出不存在具有给定名称的函数或存储过程。
然后我重新应用了存储过程,现在我又回到了原始错误。存储过程的代码是:
CREATE DEFINER=`root`@`localhost` PROCEDURE `log_insertLogMessage`<br>
(IN `Name` varchar(100), IN `Description` varchar(5000), IN `Message` varchar(5000)
)
begin
INSERT INTO DBlog(UserName, Descr, LogMessage, WhenOccurred) values(Name, Description, Message, CURDATE());
end
我可以在MySQL本身中无问题地调用存储过程。
我错过了什么?
答案 0 :(得分:1)
我弄明白了这个问题。我不得不切换到旧版本mySql.data.dll。数据库设置正确,代码很好。这只是一个连接器问题。