Member 14743579 Ответов: 3

Преобразование формата даты из ММ/ДД/гггг в ДД/ММ/гггг


я пытаюсь преобразовать формат даты из ММ/ДД/гггг в ДД/ММ/гггг. я перепробовал много вещей, но это не работает ..

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

я даю вам только основной код. основные коды приведены ниже:
// cmd.Parameters.Add(DataAccess.CreateParameter(cmd, "DateofBirth", DbType.String, dob));// this is mr original code


//i'm trying to convert the date format into dd/MM/yyyy
//code here for change date format...
if (txtboxdob.Text != "")
{
    DateTime date = DateTime.ParseExact(txtboxdob.Text, "dd-MM-yyyy", null);
    cmd.Parameters.Add(DataAccess.CreateParameter(cmd, "DateofBirth", DbType.DateTime, dob));
}
else
{
    cmd.Parameters.Add(DataAccess.CreateParameter(cmd, "DateofBirth", DbType.String, txtboxdob.Text));
}
// code end here...

//но приведенный выше код не работает, он принимает формат даты только в ММ/ДД/гггг,
пожалуйста, скажите мне, как можно решить эту проблему.

Richard MacCutchan

Вы не можете хранить значение в столбце базы данных в виде даты-времени или строки. Это может быть только то, что столбец объявлен как. И это никогда не должно быть строкой для значений дат.

3 Ответов

Рейтинг:
2

Richard MacCutchan

Вам сказали вчера в Я пытаюсь вставить дату рождения в базу данных[^], не храните даты в виде текстовых строк. И не используйте текстовые поля для сбора их значений, используйте элемент управления DatePicker, который предоставляет все методы преобразования.


Member 14743579

я знаю, что DatePicker проще, чем текст, но моя задача-заполнить дату в формате dd/MM/yyyy с помощью textbox.

Richard MacCutchan

Так зачем же ты звонишь ParseExact с помощью строки формата: -ДД-ММ-гггг" ?

Richard MacCutchan

Изменение вопроса без добавления каких-либо деталей проблемы не помогает. Пожалуйста, объясните точно, что означает "не работает".

Рейтинг:
1

Maciej Los

У вас есть подробные ответы здесь: Я пытаюсь вставить дату рождения в базу данных[^]

Остаток:
Дата-это дата, а не ее строковое представление!!!

Ваш код является недействительным, потому что:
1) а dob параметр равен нулю, из-за использования date переменная, вместо ОД dob,
2) имя параметра должно быть заменено на "@"

if (txtboxdob.Text != "")
{
    DateTime dob = DateTime.ParseExact(txtboxdob.Text, "dd-MM-yyyy", null);
    cmd.Parameters.Add(DataAccess.CreateParameter(cmd, "@DateofBirth", DbType.DateTime, dob));
}


В MS Access database engine имя параметра не имеет значения, поскольку поставщик OleDb не может распознать эти имена. Важно передать параметры в том порядке, в котором они были использованы в запросе!

Поэтому, если существует более одного параметра, проверьте его, если они передаются в правильном порядке.


Рейтинг:
0

Patrice T

Цитата:
я пытаюсь преобразовать формат даты из ММ/ДД/гггг к ДД/ММ/гггг.

Почему ваш код пытается разобрать дату в ДД-ММ-гггг формат?
Сепараторы имеют значение, - и / это не одно и то же.

[Обновление]
Хранить дату рождения в определенном формате ДД-ММ-гггг, вам нужно преобразовать значение de DateTime в строку с соответствующим форматом, а также убедиться, что поле с сохранением значения является строкой.
На самом деле правильный способ сделать это зависит от того, как вы используете DoB.


Member 14743579

нет, это не имеет значения. это моя задача-преобразовать формат из ММ/ДД/гггг в ДД/ММ/гггг и ничего больше.