Когда я пытаюсь ввести данные в столбец таблицы, появляется ошибка «Слишком длинные данные», несмотря на то, что мои данные состоят из 5 символов, а поле представляет собой varchar (8). Что бы мне нужно было изменить, чтобы это работало, поскольку, когда я добавляю часы к команде, длина символа составляет всего 5 символов.
Вот мой код команды:
[HttpPost]
public IActionResult CreateCar(CarModel carModel)
{
if (ModelState.IsValid)
{
var connection = new MySqlConnection(Configuration.GetConnectionString("MySqlConnection"));
var command =
"INSERT INTO `tblcars` (`reg`, `make`, `model`, `colour`, `type`, `fueltype`, `regDate`, `lastService`, `nextService`, `mileage`, `status`) VALUES ('@Reg', '@Make', '@Model', '@Colour', '@Type', '@FuelType', '@RegDate', '@LastService', '@NextService', '@Mileage', '@Status')";
var cmd = new MySqlCommand(command, connection);
cmd.Parameters.AddWithValue("@Reg", carModel.Reg.ToUpper(new CultureInfo("en-GB", false)));
cmd.Parameters.AddWithValue("@Make", carModel.Make.ToUpper(new CultureInfo("en-GB", false)));
cmd.Parameters.AddWithValue("@Model", carModel.Model.ToUpper(new CultureInfo("en-GB", false)));
cmd.Parameters.AddWithValue("@Colour", carModel.Colour.ToUpper(new CultureInfo("en-GB", false)));
cmd.Parameters.AddWithValue("@Type", carModel.Type.ToUpper(new CultureInfo("en-GB", false)));
cmd.Parameters.AddWithValue("@FuelType", carModel.FuelType.ToUpper(new CultureInfo("en-GB", false)));
cmd.Parameters.AddWithValue("@regDate", carModel.RegDate.ToString("yyyy-MM-dd hh:mm:ss"));
cmd.Parameters.AddWithValue("@LastService", carModel.ServiceDate.ToString("yyyy-MM-dd hh:mm:ss"));
cmd.Parameters.AddWithValue("@NextService", carModel.NextServiceDate.ToString("yyyy-MM-dd hh:mm:ss"));
cmd.Parameters.AddWithValue("@Mileage", carModel.Mileage);
cmd.Parameters.AddWithValue("@Status", carModel.Status);
connection.Open();
cmd.ExecuteNonQuery();
connection.Dispose();
cmd.Dispose();
return RedirectToAction("CreateCarConfirmed");
}
return View();
}
Вид настроен так, чтобы принимать только выпадающий выбор для поля, которое говорит, что слишком долго. Вот код представления (pastebin, поскольку он пытается отобразить HTML): https://pastebin.com/ijG8CG9j