C# winform как преобразовать строку, введенную пользователем, в datetime, чтобы ее можно было вставить в SQL server
Привет,
У меня есть замаскированное текстовое поле в моей форме, где пользователь вводит дату как ДД/ММ/гггг
а затем это значение вставляется в таблицу sql server.
При выполнении запроса я получаю следующую ошибку:
the conversion of a varchar data type to a datetime data type resulted in an out-of-range value
Я пробовал много способов и пытался искать подобные проблемы в интернете и пробовал исправления/ответы, но я все еще получаю ошибку.
Ошибка возникает только тогда, когда введенное значение " dd " превышает 12, поэтому я предполагаю, что sql server принимает это значение как MM вместо dd.
Ниже приведено то, что я пробовал.
Что я уже пробовал:
Datetime receivedDate = DateTime.ParseExact(receivedDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
Инструкция insert выглядит следующим образом:
string query = "INSERT INTO dateTbl(recD) VALUES('" + receivedDate + "')"
Richard MacCutchan
почему вы используете текстовое поле, а не DateTimePicker?
xTMx9
Я использую текстовое поле, потому что в форме много текстовых полей, и пользователь должен быстро вводить данные и переключаться с одного на другое, поэтому решил, что наличие замаскированного текстового поля будет быстрее.
Я никогда раньше не использовал элемент управления DateTimePicker, поэтому не уверен, можно ли вводить текст, как в текстовом поле, или всегда выбирать из календаря.
Richard MacCutchan
Вы действительно верите, что средний пользователь может ввести дату в вашем конкретном формате быстрее, чем он/она может нажать на элемент управления?
И есть простой способ узнать, какие функции поддерживает этот элемент управления.
xTMx9
только несколько пользователей используют эту форму, и это быстрее для них таким образом, "введите" из предыдущего поля, введите кучу цифр быстро, а затем введите, а не нажимайте на элемент управления