【发布时间】:2014-12-14 03:45:11
【问题描述】:
我是编写存储过程的新手,我在执行这个存储过程时遇到了一些问题。它能够更新名称和地址,但无法更新 employeecount。而且我无法跟踪错误 i做了。
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_update_company_details`(
IN p_id int(11),
IN p_name varchar(45),
IN p_address varchar(45),
IN p_num_employee int(11)
)
BEGIN
UPDATE company
SET name=p_name,
address=p_address,
employeecount=p_num_employee
WHERE id=p_id;
END
这是数据库中的表
CREATE TABLE `company` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`address` varchar(45) DEFAULT NULL,
`employeecount` int(11) DEFAULT NULL,
`logo` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
一个标准表,不是什么花哨的东西。
这就是我调用这个存储过程的方式。
MySqlCommand cmd = new MySqlCommand(String.Format("call sp_update_company_details({0},'{1}','{2}',{3})",
id,request.Name,request.Address,request.NumberOfEmployees), conn);
id 和 request 作为参数传递给进行此调用的函数。
【问题讨论】:
-
你怎么称呼它?它应该要么全部成功,要么全部失败。
-
@JRLambert 查看更新
-
您确定
request.NumberOfEmployees具有您认为的价值吗? -
@outlyer 是的,这是错误,我传递的 JSON 对象中有一些错误。
标签: mysql database stored-procedures sql-update