我有一个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。
我无法弄清楚我哪里出错了。有任何想法吗?感谢...
答案 0 :(得分:0)
将new MySqlParameter("name"
更改为new MySqlParameter"@name"
等,然后将查询字符串更改为"call storedProc1 @name, @surname, @age"
。
有可能使用?以您尝试的方式调用程序的参数。有关详细信息,请参阅here。