2011-06-12 71 views
0

我無法弄清楚如何使用Connector/NET 3.6.5提供的MySQLCommand。基本上這裏是我使用的代碼和我運行ExecuteNonQuery時得到的異常。我在這裏做錯了什麼?我沒有想法離開:(使用輸出參數執行MySqlCommand(StoredProcedure)

var connection = GetConnection(); 
connection.Open(); 

var command = new MySqlCommand("PredictPaperRankInInterval", connection); 
command.CommandType = CommandType.StoredProcedure; 
command.Parameters.Add(new MySqlParameter("p_journalId", SqlDbType.VarChar) { Value = "test" }); 
command.Parameters.Add(new MySqlParameter("p_publishDate", SqlDbType.DateTime) { Value = paper.PublishDate }); 
command.Parameters.Add(new MySqlParameter("p_intervalInDays", SqlDbType.Int) { Value = 7 }); 
command.Parameters.Add(new MySqlParameter("p_viewsCount", SqlDbType.Int) { Value = paper.ViewsCount }); 
var rank = new MySqlParameter("p_rank", SqlDbType.Int) { Direction = ParameterDirection.Output }; 
command.Parameters.Add(rank); 

command.ExecuteNonQuery(); 

異常

Input string was not in a correct format. 

DDL

CREATE PROCEDURE `PredictPaperRankInInterval`(IN p_journalId VARCHAR(32), 
               IN p_publishDate DATETIME, 
               IN p_intervalInDays INT, 
               IN p_viewsCount INT, 
               OUT p_rank INT) 
+0

你可以張貼調用的存儲過程的簽名 – 2011-06-12 01:57:35

+2

確保參數類型映射正確用於存儲過程中使用的類型。 – Waleed 2011-06-12 01:58:52

+1

:D很高興能有人聰明。必須改用MySqlDbType。 – 2011-06-12 02:08:38

回答

1
MySqlCommand command = new MySqlCommand("PredictPaperRankInInterval", con); 
command .CommandType = System.Data.CommandType.StoredProcedure; 
+1

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – SSA 2015-03-21 14:02:24

+0

抱歉,我無法忍受.... – 2015-04-04 14:07:00