回答2楼的
create procedure testProc
(
out param1 varchar(20)
)
begin
set param1 = 'ok';
end调用测试
call testProc(@a);
select @a
-- 输出结果 'ok'上面我用了@a ,在存储过程中用的param1.mysql环境下可以正确使用。
asp.net里面
如果 MySqlParameter param1 = new MySqlParameter("@param1", MySqlDbType.VarChar, 20);
param1.Direction = ParameterDirection.Output;
提示 Parameter '@1118079786param1' must be defined
如果 MySqlParameter param1 = new MySqlParameter("@a", MySqlDbType.VarChar, 20);
param1.Direction = ParameterDirection.Output;
提示 Parameter '@param1' not found in the collection.
create procedure testProc
(
out param1 varchar(20)
)
begin
set param1 = 'ok';
end调用测试
call testProc(@a);
select @a
-- 输出结果 'ok'上面我用了@a ,在存储过程中用的param1.mysql环境下可以正确使用。
asp.net里面
如果 MySqlParameter param1 = new MySqlParameter("@param1", MySqlDbType.VarChar, 20);
param1.Direction = ParameterDirection.Output;
提示 Parameter '@1118079786param1' must be defined
如果 MySqlParameter param1 = new MySqlParameter("@a", MySqlDbType.VarChar, 20);
param1.Direction = ParameterDirection.Output;
提示 Parameter '@param1' not found in the collection.
解决方案 »
- 文件被别的进程占用时,其他进程如何阻塞?
- ASP.NET有没办法获取客户端的端口号?
- 对高手来讲很简单,asp.net建站问题
- 高手请进,关于webservice
- 正则表达式匹配替换问题~怎么只用一个匹配符?
- 在dateTimePicker控件中显示时间时,怎样以24小时制显示时间?
- 如何监听鼠标的双击事件?
- 求一个取尖括号里面内容的正则表达式
- 建项目时命名问题
- 多个webbrowser弹出js对话框
- .NET 2.0 中FTP 出现远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。
- 字符串supercalifragilisticexpialidocious是因为太长了而不能放在string变量中吗?
param1.Direction = ParameterDirection.Output;
这个写法好像有问题,我的映像针对OutPut参数,必须在New的时候就指定为OutPut这种参数理解起来应该是建立了一个InPut的参数,MySQL自动把存储过程中的参数改名了,然后告诉你参数没有指定
好像不是这个问题,按照你的提示,我修改了一下代码
new MySqlParameter("?Msg",MySqlDbType.VarChar,20,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,null)
仍然会生成一个不存在的变量,并且贴士变量为定义
MySql.Data.MySqlClient.MySqlException: Parameter '@3353701274Msg' must be defined.继续求解~~~~~~
http://bugs.mysql.com/bug.php?id=25013
太多地方需要存储过程返回值了,从mssql迁移过来的,真实一路坎坷。
没办法暂时在库里面创建了一个表存储临时返回值,每次去读写表了,哎,浑身不舒服,希望极早有高人相救,拜谢了~~~~
param1.Direction = ParameterDirection.Output;