涛哥我要参数带进来!fdsafdsf

MySql(2)
这几天在学习mysql数据库的一些功能,今天在调用存储过程的时候 总是失败,最后发现居然是一个参数名称的问题,我将粘出代码事例及注意事项!
1.首先创建一个带参数的存储过程
①存储过程名称=proc_bookinfo&
②存储过程2个参数 一个in 一个out in参数名称=ispay out参数名称=unPaycount
这个存储过程 根据传入的未支付字段名称 输出未支付的商品数量
DELIMITER $$
USE `bookshop`$$
DROP PROCEDURE IF EXISTS `proc_bookinfo`$$
CREATE DEFINER=``@`` PROCEDURE `proc_bookinfo`(IN ispay VARCHAR(10),OUT unPaycount INT)
SELECT COUNT(*) INTO unPaycount FROM tb_bookinfo AS a,tb_shopbook AS b WHERE b.ispay=
DELIMITER ;
2.C#代码调用该存储过程
①sql语句只需要写存储过程的名称即可
②2个参数的名称和数据类型以及数据长度都要和数据库中定义存储过程的参数完全相同(大小写不影响)
③2个参数的Direction属性赋予对应的类型
④调用ExcuteProc方法执行 & 即可,输出值就是传入的第二个参数
StringBuilder sql=new StringBuilder();
sql.Append(&proc_bookinfo&);
MySqlParameter[] parameters = {
new MySqlParameter(&@ispay&, MySqlDbType.VarChar,10),
new MySqlParameter(&@unPaycount&, MySqlDbType.Int32,11)
parameters[0].Value =&未付款&;
parameters[0].Direction = ParameterDirection.I
parameters[1].Value = 0 ;
parameters[1].Direction = ParameterDirection.O
DbHelperMySQL.ExecuteProc(Convert.ToString(sql), parameters);
3.执行数据库操作的方法
注意:CommandType属性一定赋值为CommandType.StoredProcedure
public static object ExecuteProc(string SQLString, params MySqlParameter[] cmdParms)
using (MySqlConnection connection = new MySqlConnection(connectionString))
using (MySqlCommand cmd = new MySqlCommand())
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
mandType = CommandType.StoredP
int rows = cmd.ExecuteNonQuery();
Console.WriteLine(&返回值为 &+cmdParms[1].Value);
cmd.Parameters.Clear();
catch (MySql.Data.MySqlClient.MySqlException e)
connection.Close();
以上就是c#调用Mysql带参数的存储过程的一个完整事例!有问题的朋友可以私信我,也希望大家多多提出建议!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:58946次
排名:千里之外
原创:30篇
转载:49篇
评论:13条
(2)(2)(2)(1)(3)(2)(3)(2)(8)(3)(3)(3)(10)(3)(5)(1)(5)(9)(7)(2)(5)}

我要回帖

更多关于 fdsafds 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信