【发布时间】:2014-10-19 01:03:40
【问题描述】:
我有一个 WPF/.Net 4.5 C# 应用程序,我正在使用 MySQL NET 连接器 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.dll 中出现“MySql.Data.MySqlClient.MySqlException”类型的未处理异常 附加信息:PROCEDURE tracker.insert_track 的参数数量不正确;预期 3,得到 0。
我不知道哪里出错了。有任何想法吗?谢谢...
【问题讨论】:
-
尝试将
new MySqlParameter("name"更改为new MySqlParameter"@name"等,然后将查询字符串更改为"call storedProc1 @name, @surname, @age" -
感谢劳伦斯,成功了。
-
愚蠢的问题,我如何将您的答案标记为正确的?抱歉,我对 stackoverflow 有点陌生...
-
我需要先把它写成答案,也可能需要一段时间才能标记它。
标签: c# mysql sql .net stored-procedures