powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с DateTimePicker
13 сообщений из 13, страница 1 из 1
Проблема с DateTimePicker
    #32334735
Beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем. Вот такой вопрос.

Есть форма на которой хочу DateTimePicker связать с столбцом таблицы SQL (типа smalldatetime), "ddMMyyyy" форматом. Как сделать это? Прошу по подробнее.

Заранее спасибо.
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32334747
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот сразу 3 вопроса (это чтобы совсем подробно):
1.DateTimePicker работает со скаляром, как ты хочешь, чтобы он работал с массивом значений - как их крутить ?
2.столбец значений на сервере или все таки предварительно считанный в приложение ?
3."ddMMyyyy" - это для прикола ? причем здесь данные сервера и желание видеть их на форме в определенном виде ?
----
сделай выборку из БД и заполни DataTable, одна из колонок которой будет (типа DateTime) и содержать значения нужного тебе столбца с датой. другая(ие) колонка - идентификацию строки

сделай привязку 2-х контролов на форме к таблице: dtPicker'а к колонке с датой и второго контрола (типа ComboBox) к колонке идентификации

при выборе из ComboBox нового зачения автоматом будет подставлено значение даты из выбранной сторки в dtPicker

если предполагается изменение даты - необходимо сохранить изменения в БД (метод Update у SqlDataAdapter) - предусмотри, например, для этого кнопку на форме. при этом в DataTable должна присутствовать колонка Primary Key
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335062
Beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давай с начало, а то мы не понемаем друг друга.

Я делaю выборку из таблицы SQL(у которой есть несколько nvarchar и один smalldatetime столбцов) в мой DataTable. Хочу делать так, что на форме TextBox-ы и DateTimePicker показывали текущую запись DataTable-а.

Ну с TextBox-оми нет проблем, связываю проперти Text в DataBindings-е с соответстующим столбцом DataTable. А вот с DateTimePicker не все впорядке, делаю так, связываю проперти value в DataBindings-е с соответстующим столбцом DataTable (типа DateTime). Меняю CustomFormat на "dd.MM.yyyy" и Format на Custom.

Вроде все должно быть нормально. И это так, когда я смотрю сушествующие записи. Но стоит добавить запись и все как будто смешивается, TextBox-ы показывают какую то сушествующую запись (наверно так) не понимаю почему так получается.

Может я что то не так делаю?
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335130
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот теперь понял в чем сложность.
проблема в том, что DateTimePicker.Value не воспринимает значений типа DBNull (при попытке его присвоения происходит exception, который отлавливается bindig'ом - тормоз все равно на лицо). чтобы этого не происходило, попробуй колонке с датой установить:
Код: plaintext
myTable.Columns[ "myDateColumn" ].DefaultValue=new DateTime( 2003 ,  1 ,  1 );
cразу после Fill.
тогда и с добавлением новых строк к таблице бкудет все ОК
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335326
Dronopotamus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можешь глянуть вот тут
http://www.codeproject.com/cs/miscctrl/Nullable_DateTimePicker.asp
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335544
Beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит так.
DateTimePicker связывать надо, наверника, не по Value(по Value так и не получилось) а по Text. Но в этом случае надо установить DefaultValue(как ты написал кузя, спасибо, без этого не получается). Но и в этом случае есть проблема. Дело в том что, когда у DateTimePicker CustomFormat="dd.MM.yyyy" и Format=Custom и я меняю дату в DateTimePicker, то он dd и MM иногда путает. В чем дело?
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335571
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему через Value не получилось. вроде бы он и заточен под DateTime и есть полная отвязка как ты его (в каком формате) показываешь на форме ?
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335685
Beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Value, насколько я знаю, нет отдельного формата. Для DateTimePicker формат один и он у меня вот какой CustomFormat="dd.MM.yyyy" (ну и конечно Format=Custom).

Да и еше вот что когда я DateTimePicker связываю с Value то у меня опять начинаетсья путанница с текущей записью даже тогда когда я просто смотрю записи.

Вот и все. Как поступить?
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335716
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы не было путаницы, нужно чтобы у всех контролов на форме был один и тот же DataSource.
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335824
Beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну конечно у меня все контролы связаны с одним DataSource.

Подскожите пожалуйста, от чего может быть еще?
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335869
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот кусок рабочего кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void Form1_Load(object sender, System.EventArgs e)
{ this.dataGrid1.SetDataBinding(ds,  "tp" );
  this.dateTimePicker1.DataBindings.Add( "Value" , ds,  "tp.myDate" );
  this.textBox1.DataBindings.Add( "Text" , ds,  "tp.myText" );
...
}
...
private void buttonNext_Click(object sender, System.EventArgs e)
{ this.BindingContext[ds,  "tp" ].Position+= 1 ;
}
ds - DataSet, в котором содержится таблица c именем tb. и все прекрасно (в смысле согласовано) показывает как при навигации через грид так и по кнопкам через BindingContext. думаю, что при использовании в качестве DataSource самой таблицы все также будет работать. придется из имен мемберов исключить имя таблицы, чтобы остались только названия столбцов, а BindingContext использовать в форме BindingContext[ds.Tables["tb"]]
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32335911
Artur Muradian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При связовании DateTimePicker по Text. У тебя работает CustomFormat("dd.MM.yyyy") и тогда Text у твоего DateTimePicker получается вот такой dd.MM.yyyy. Напремер, 20.10.2000 будет храниться на сервере 20.10.2000, а 02.10.2000 как 10.02.2000. Вот и по этому у тебя это бывает не всегда. Т.е. тебе надо до вызова Update решить этот вопрос.

DateTimePicker1.Text= DateTimePicker1.Value.ToShortDateString();

Межет не самый оптимальний вариант :) но должно сработать. Попробуй.
...
Рейтинг: 0 / 0
Проблема с DateTimePicker
    #32336104
Beginer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, уже разобрался.

Наилучшие...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с DateTimePicker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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