MySqlHelper.Execute异常(C#) - 对参数做错了

时间:2014-08-25 19:54:40

标签: c# mysql sql .net stored-procedures

我有一个WPF / .Net 4.5 C#应用程序,我正在使用MySQL NET Connector 6.8.3。我试图在MySQL数据库中执行存储过程,这需要3个参数。

存储过程如下:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `storedProc1`(name VarChar(50), surname VarChar(50), age INT)
BEGIN
INSERT INTO table1 (name, surname, age) VALUES (name, surname, age);
END

这是我的C#代码:

using MySql.Data.MySqlClient;
string connString = "server=localhost;database=db1;user id=user1;password=pass1";
MySqlParameter[] parameters = new MySqlParameter[3];
parameters[0] = new MySqlParameter("name", "john");
parameters[1] = new MySqlParameter("surname", "smith");
parameters[2] = new MySqlParameter("age", 35);
MySql.Data.MySqlClient.MySqlHelper.ExecuteNonQuery(connString, "storedProc1", parameters);

但我收到以下错误:

  

未处理的类型' MySql.Data.MySqlClient.MySqlException'发生在MySql.Data.dll中   附加信息:PROCEDURE tracker.insert_track的参数数量不正确;预计3,得到0。

我无法弄清楚我哪里出错了。有任何想法吗?感谢...

1 个答案:

答案 0 :(得分:0)

new MySqlParameter("name"更改为new MySqlParameter"@name"等,然后将查询字符串更改为"call storedProc1 @name, @surname, @age"

有可能使用?以您尝试的方式调用程序的参数。有关详细信息,请参阅here