Я новичок в написании хранимых процедур, и у меня есть некоторые проблемы, выполняющие этот one.it может обновить имя и адрес, но не может обновить employeecount
. И я не могу отслеживать ошибку, которую я сделал.Сохраненная процедура обновления не работает
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;
СТАНД таблицы, а не что-нибудь фантазии.
И вот как iam вызывает эту хранимую процедуру.
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
@JRLambert см. Обновление – Kunal0615
Вы уверены, что 'request.NumberOfEmployees' имеет значение, которое, по вашему мнению, имеет? – outlyer