2015-11-11 5 views
0

У меня есть приложение winforms C#, которое привязывается к таблице с несколькими датами. Клиент требует, чтобы эта дата была введена с помощью текстового поля. Однако я не могу заставить его работать так, как должно. Проблема в том, что я оставляю текстовое поле в день и месяц изменения мест. Поэтому, когда я печатаю 9-12-1950, он появится как 12-09-1950. То же самое, когда я печатаю 09-12-1950. Внутренне дата хранится как yyyy-MM-dd. Данную привязку можно использовать в формате dd-MM-yyyy. Я использую проверяющий проверку t0 события, если дата действует как:Winforms C# Дата в TextBox меняется месяц и день

if (DateTime.TryParseExact(tbDate.Text, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue)) 
       tbDate.Text = String.Format("{0:dd-MM-yyyy}", dateValue); 

Когда я отладки я вижу, что текст-значение tbDate все еще находится в правильном формате, в моем случае, например 9-12-1950 , Я также вижу, что dateValue, который возвращается из TryParseExact, имеет ту же дату, но в формате MM/dd/yyyy.

Сохранение даты в базе данных задано на основании. Что мне здесь не хватает?

[Обновить] Возможно, я не был достаточно ясен в своем объяснении. Дата хранится в SQL Db в формате yyyy-MM-dd типа DateTime (не varchar). В моей форме я хочу показать и отредактировать ее как dd-MM-yyyy (есть и другие форматы: «dd/MM/yyyy», «dd/M/yyyy», «d/M/yyyy», d/MM/yyyy "," dd/MM/yy "," dd/M/yy "," d/M/yy "," d/MM/yy "," dd-MM-yyyy "," dd- «D-MM-yy», «dd-M-yy», «dM-yy», «d-MM-yy».

типирование работает, но как только я перехожу от TextBox в день и месяц изменить место. Я думаю, что я что-то пропустил. Просто не знаю, что.

+0

есть формат, определенный внутри самого текстового поля? (a s winforms textbooxes может иметь формат, заданный либо вручную, либо через gui) – Thomas

+2

Что такое 'formats' точно? Как вы их храните точно? Вы сохраняете их как 'DateTime' или' string'? –

+0

В текстовом поле не было никакого формата. Дата хранится в базе данных в формате yyyy-MM-dd HH: mm. – Stephan

ответ

0

Я чувствую себя немного глупо, проблема был вызван настройкой локальной системы, которая была установлена ​​в M/d/yyyy. Я изменил ее на мою локальную культуру dd-MM-yyyy, которая решила проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^