powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Не попадает дата в БД из DatePicker
14 сообщений из 14, страница 1 из 1
Не попадает дата в БД из DatePicker
    #39287084
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
На форме в WPF есть TextBox и DatePicker.
При добавление в базу значения из TextBox попадают а вот при выборе даты в DatePicker в базу попадает null.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<TextBox x:Name="txtNumberPass"
                Grid.Column="1"
                         Grid.Row="0"
                 Text="{Binding NumberPass}"
                 Width="80"
                 Style="{StaticResource TextBoxStyle}">

                </TextBox>

                <DatePicker x:Name="txtDataPass"
                         Grid.Column="2"
                         Grid.Row="0"
                        
                         Text="{Binding DataPass}"
                         Width="100"
                         Height="25"
                         VerticalAlignment="Center"
                            HorizontalAlignment="Center"/>
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39287276
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BKV88, наверное, нужен конвертор?
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39287334
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DatePicker мусорный контрол, если честно, давно его выкинул из своего набора.
особенно бесит свободный ввод
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39287340
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

А какой контрол вы используете для работы с датами?
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39287341
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13th,

Код: c#
1.
Text="{Binding DataPass, StringFormat={} {0:yyyy.MM.dd}}"




Не сильно помогло
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39288877
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В каком формате даны в БД? В каком формате данные в DTP?
Возможно, надо написать конвертер (IValueConverter) и использовать его:

Код: xml
1.
Text="{Binding DataPass, Converter={StaticResource PickerToDatabaseFormatConverter}}"
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289172
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13th,

В БД хранится с типом date в формате yyyy-MM-dd(2016-07-08) из программы на форме контрол DatePicker (там как я понял формат dd-MM-yyyy)

написал класс:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public class DateTimeToDateConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return ((DateTime)value).ToString("yyyy-MM.dd");
        }


        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return null;
        }



Прописал в XAML

Код: c#
1.
2.
3.
4.
5.
xmlns:conv="clr-namespace:OMP.Converters"
   <Grid.Resources>
                    <conv:DateTimeToDateConverter x:Key="DateConverter" />
                </Grid.Resources>
Text="{Binding DataPass, Converter={StaticResource DateConverter}}"



В программе вылетает exception.
До конца еще не разобрался как правильно реализовать класс конвертера
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289218
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда пилите конвертер учитывайте, что в DatePicker'е в свойстве Text может быть и не дата, а любой текст.
лично я свой DatePicker запилил с маской ввода, блекдежком и календариком )
вообще в DatePicker есть не только свойство Text, там есть SelectedDate с типом Nullable<DateTime>\DateTime?
можно использовать его, он вроде связан с текстовым полем, когда в тексте DatePicker'а вводя дату, а не всякую шалупен, это свойство меняется в соответствии с веденными данными
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289233
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Спасибо.
Установил
Код: c#
1.
SelectedDate="{Binding DataPass}"



Значения попадает в базу и никаких конвертеров не надо.
А можно запретить ручное редактирование?
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289249
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BKV88Roman Mejtes,

Спасибо.
Установил
Код: c#
1.
SelectedDate="{Binding DataPass}"



Значения попадает в базу и никаких конвертеров не надо.
А можно запретить ручное редактирование?нельзя, вообще в книжках пишут, что такая концепция свободного ввода в WPF.
связано это с тем, что устройствами ввода могут быть разные устройства (клавиатура, рукописный ввод и другие) и события InputText и KeyDown обрабатывать не имеет смысла + еще возможна вставка и прочее
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289725
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BKV88, естественно, exception будет вылетать. В обратку-то конвертор не работает.
Вообще, прежде чем что-то с чем-то биндить, надо посмотреть на типы данных.
Во-вторых, многие забывают, но ошибки биндинга не ассертят, зато очень подробно выводятся в Output.
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289729
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BKV88, не знаю, что у Вас за база, но обычно дата хранится в double. А в "в формате yyyy-MM-dd(2016-07-08)" дата отображается .
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289779
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13th,

double? Вы ничего не путаете? double - это число с плавающей точкой.
В T-SQL есть формат date вот в нем и хранится
...
Рейтинг: 0 / 0
Не попадает дата в БД из DatePicker
    #39289835
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BKV88, я ж написал, что не знаю, какая БД. В любом случае, не "в формате yyyy-MM-dd(2016-07-08)". ;)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Не попадает дата в БД из DatePicker
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]