Fahid Zahoor Ответов: 1

Попробуйте сохранить дату из ячейки gridview в SQL


привет,
Я делаю ячейку gridview в качестве средства выбора даты и времени с помощью programmicaly
теперь я хочу сохранить дату ячейки представления сетки в SQl . Но я столкнулся с ошибкой
пожалуйста помогите мне как я могу решить эту проблему тысячу раз я ищу ее в google но не получаю никакого решения
Я получаю это сообщение об ошибке
"
System.Data.SqlTypes.SqlTypeException: 'SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.'

"

Что я уже пробовал:

 foreach (DataGridViewRow row in StockdataGridView.Rows)
             {
             using (SqlCommand cmd = new SqlCommand("USP_Insert_Stock_Info", conn1))
{
  cmd.CommandType = CommandType.StoredProcedure;
 DateTime expdate = Convert.ToDateTime(row.Cells[5].Value );
                            cmd.Parameters.AddWithValue("@ExpDate", expdate);
}     
        } {

1 Ответов

Рейтинг:
2

RickZeeland

Я думаю вам нужно поставить точку останова на линии:

DateTime expdate = Convert.ToDateTime(row.Cells[5].Value );
и посмотрите что expdate похоже, что при наведении на него курсора мыши формат, вероятно, не подходит для вашей хранимой процедуры.
Вы также должны проверить, есть ли строка.Ячейки[5].Сначала значение не равно нулю.

Это также может быть необходимо для эксплицитного указания SqlDbType, подобный этому:
command.Parameters.Add(new SqlParameter("@ExpDate", SqlDbType.DateTime2) { Scale = 3, Value = expdate });
Более подробная информация здесь: AddWithValue - это зло | блог Дэна Гусмана[^]

Смотрите пример здесь для DateTimePicker использование: Как использовать элементы управления хостом в ячейках Windows Forms DataGridView | Microsoft Docs[^]


Fahid Zahoor

когда я навожу курсор мыши на "expdate"
значение равно {1/1/0001 12:00:00 AM}
но я не могу выбрать это значение, которое я установил сегодня .
теперь как я могу его усовершенствовать

Fahid Zahoor

Оооо я проверил это
если грести.Ячейки[5].значение не равно нулю.
он показывает нулевое значение, но я установил сегодняшнюю дату

RickZeeland

Похоже, теперь вы на правильном пути :) Я также обновлю решение интересной ссылкой О SqlDbType.

Fahid Zahoor

но пожалуйста скажите мне как я могу исправить это действительно беспокоит

Fahid Zahoor

Я использовал его, но теперь эта ошибка происходит
Система.InvalidCastException: "не удалось преобразовать значение параметра из DateTimePicker в DateTime".