Тема: C# і MySQL Connector, data truncated for column
Привіт. Схема така. Є клієнт і сервер. Коли клієнт закривається, на сервер відправляється повідомлення. Коли сервер його приймає, він заносить отримані дані від клієнта в базу даних. Дані собою являють три координати, котрі визначають положення персонажа клієнта в просторі. Вони мають тип float. Для зміни значень в таблиці я використовую ось таку збережену процедуру
DROP PROCEDURE `SP_SetCoor`;
CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_SetCoor`(IN `ch_id` INT(20), IN `u_x` FLOAT(20), IN `u_y` FLOAT(20), IN `u_z` FLOAT(20)) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER
BEGIN
update coor_t SET x=u_x,y=u_y,z=u_z where id=ch_id;
END
Вона приймає 4 значення - id персонажа і значення трьох координат. Так от, дані на сервер приходять цілісінькі, але коли я намагаюсь їх змінити в базі за допомогою процедури, то вилазить якась помилка. Ось код
void SetNewCoor(ConnectionInfo conn)
{
int id = conn.char_id;
float x = conn.x;
float y = conn.y;
float z = conn.z;
string req = "call SP_SetCoor('"+id+"','"+x+"','"+y+"','"+z+"')";
MySqlCommand myCommand = new MySqlCommand();
myCommand.CommandText = req;
myCommand.Connection = myConnection;
try
{
myConnection.Open();
myCommand.ExecuteScalar();
myConnection.Close();
}
catch (Exception e)
{
Console.WriteLine(" x = {0}, y = {1}, z = {2}",x,y,z);
Console.WriteLine(e.Message);
myConnection.Close();
}
}
Що я роблю не так?