Проблема с dataGridView, когда по умолчанию в системе стоит разделитель "," матюкается БД что не может привести varchar к numeric меняешь разделитель на "." все становится ок. Мне не нравится вариант что каждому юзеру надо менять разделитель, подскажите что делать, ведь 100% есть готовый вариант и решение.
Вот что я делаю
for (int i = 0; i < dgv_mainWindow.RowCount; i++)
{
cmd.CommandText = "UPDATE newRegistr " +
"SET departedTime = '" + dgv_mainWindow.Rows[i].Cells["startTime"].Value + "', " +
"arrivedTime = '" + dgv_mainWindow.Rows[i].Cells["finishTime"].Value + "', " +
"pal = '" + dgv_mainWindow.Rows[i].Cells["pal"].Value + "', " +
"kg = '" + dgv_mainWindow.Rows[i].Cells["kg"].Value + "', " +
"addKm = '" + dgv_mainWindow.Rows[i].Cells["addKm"].Value + "' " +
" WHERE shiftCode = '" + GlobalVariable.sh + "' and sort = " + i + " ";
cmd.ExecuteNonQuery();
}
В БД колонка kg и addKm numeric.
Для начала я бы привел даный код к следующему виду:
for (int i = 0; i < dgv_mainWindow.RowCount; i++)
{
var startTime = dgv_mainWindow.Rows[i].Cells["startTime"].Value;
var finishTime = dgv_mainWindow.Rows[i].Cells["finishTime"].Value;
var pal = dgv_mainWindow.Rows[i].Cells["pal"].Value;
var kg = dgv_mainWindow.Rows[i].Cells["kg"].Value;
var addKm = dgv_mainWindow.Rows[i].Cells["addKm"].Value;
cmd.CommandText = $"UPDATE newRegistr " +
"SET departedTime = '{startTime} + ', arrivedTime = '{finishTime}', " +
"pal = '{pal}', kg = '{kg}', addKm = '{addKm}' " +
" WHERE shiftCode = '{GlobalVariable.sh}' and sort = {i}";
cmd.ExecuteNonQuery();
}
Мне не нравится вариант что каждому юзеру надо менять разделитель, подскажите что делать, ведь 100% есть готовый вариант и решение. Предлагаю на вскидку 2 варианта:
Изменить настройки системы на другой разделитель (не факт что у тебя в системе стоит адекватный)
делаешь .Replace(".", ",") (ну или наоборот) на нужном значении :)
изменить .DefaultCellStyle.Format на такой, как тебе нужно. (не забывая протестить на обеих системных разделителях, если твоя апликушка должна пахать на обеих)
А вообще, апдейтить нужно только ту строку, которая проапдейтилась. Потому твой код вообще в корне неверный, ведь, ты апдейтишь ВСЕ строки вообще. Даже, если менялась лишь одна. А если у тебя в таблице будет 100000000 значений? :)
У тебя есть следующие варианты:
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости