2014-02-19 21 views
1

ADO.NET被用於訪問我的應用程序中的MySQL數據庫。一些存儲過程是在室外開發的。我將它們應用於數據庫。當試圖訪問數據庫中的存儲過程時,會出現以下異常:ASP.NET在調用存儲過程時稱FUNCTION不存在

功能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

我想出了問題。我不得不切換到較舊版本的mySql.data.dll。數據庫設置正確,代碼很好。這只是一個連接器問題。