powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / В Ацессе одно, в Гриде другое! Где вилы?
16 сообщений из 16, страница 1 из 1
В Ацессе одно, в Гриде другое! Где вилы?
    #32453591
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из Ацесса получаю запись где есть поле типа число/время, которое содержит время последней модификации записи в формате: 19:22:44
А в Гриде написано 30.12.1899 (!)
В чём дело?

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32453786
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как открываешь? Коды в студию.
Тип поля в базе?

Magnus
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454373
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема была не только в том, что в Гриде отображается не то что надо, но ещё и в том, что после команды UPDATE в базу пишется 00:00:00
С последним я разобрался, ошибка была в типе поля который ВС.НЕТ мне автоматически засобачил:

this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_LastModTime", System.Data.OleDb.OleDbType. DBDate ..............

а надо было в случае с Ацессом:

this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_LastModTime", System.Data.OleDb.OleDbType. DBTimeStamp ..............

Ок. С этим понятно, теперь в базе всё нормально записывается и апдейтится, но в Гриде всё ещё стоит 30.12.1899 и я не знаю как это можно побороть.
есть олеАдаптер, есть датасет который является источником данных для Грида и как только oleDbAdapter.Fill(); так сразу 30.12.1899 в Гриде.

поле в базе типа число/время, что соответствует OleDbType.DBTimeStamp


Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454410
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в датасет какой тип поля стоит?
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454437
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делаю так:

Код: plaintext
label1.Text+=DS.Tables[ "Folders" ].Columns[ "LastModTime" ].DataType.ToString();


получаю: System.DateTime

и я не знаю как мне это изменить и надо ли ЭТО менять или гдето ещё.
Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454489
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А DataSet типизированный или нетипизированный?
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454570
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще у тебя проблема в том что в Access хранится только время, а в NET DateTime . Поэтому и при выводе в грид время дополняется датой 30.12.1899.

Решение: Поменять формат вывода поля в гриде.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454630
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Датасет генерил в Студио автоматически из датадаптера, следовательно он типизированный.

Решение: Поменять формат вывода поля в гриде.

КАК?

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454656
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>КАК?

Ну например так, предположим что есть dataGrid1, tableStyles[0], а необходимое поле в коллекции первое то есть [0], тогда код ниже можно вставить в Load формы.
Код: plaintext
1.
2.
3.
4.
5.
6.
DataGridTextBoxColumn column; 
column =  (DataGridTextBoxColumn)dataGrid1.TableStyles[ 0 ].GridColumnStyles[ 0 ];
if (column != null) 
{
   column.Format =  "T" ; // подробне про другие datetime format можно посмотреть в MSDN
}
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454720
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал вот так покольку необходимое поле в коллекции у меня седьмое то есть [6],
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void Form1_Load(object sender, System.EventArgs e)
{
DataGridTextBoxColumn column; 
column =  (DataGridTextBoxColumn)dataGrid1.TableStyles[ 0 ].GridColumnStyles[ 6 ];
if (column != null) 
{
	column.Format =  "T" ; 
}
}


Не работает, тогда я в редакторе св-в у Грида всем полям выставил формат "Т" - тоже не работает. Что это может быть?

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32454859
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
System.Windows.Forms.DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName =  "table1" ;
	
DataGridTextBoxColumn column = new DataGridTextBoxColumn();
column.MappingName =  "col1" ;
column.HeaderText =  "Проба" ;
column.Width =  140 ;
column.Format =  "T" ;
tableStyle.GridColumnStyles.Add(column);
	
this.dataGrid1.TableStyles.Clear();
this.dataGrid1.TableStyles.Add(tableStyle);

this.dataGrid1.DataSource = null;
this.dataGrid1.DataSource = this.dataSet1;
this.dataGrid1.DataMember =  "table1" ;


Ну вроде понятно почему у тебя не работает, попробуй так? Только поменяй table1 (имя таблицы), col1(название поля), this.dataSet1 (датасет) на свое.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32455066
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Sa, получилось !
Важно tableStyle.MappingName = "table1"; не забыть.

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32455114
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Важно tableStyle.MappingName = "table1"; не забыть.

Во, во кажется мелочь, а без этого ты "воздух" форматировал.

Также Format будет работать и через редактор.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32455134
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также Format будет работать и через редактор.

Угу, я так и сделал, всё сделал в редакторе св-в а потом в коде ручками tableStyle.MappingName = "table1"; поправил.

Интересно знать где это в редакторе св-в задать....

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32455153
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Интересно знать где это в редакторе св-в задать..

Открываешь tableStyle -> группа Misc
Ниже коллекции GridColumnStyles , свойство MappingName - умный редактор даже тебе на выбор даст таблицу из DataSet выбрать ( если DataSource выставлен)
...
Рейтинг: 0 / 0
В Ацессе одно, в Гриде другое! Где вилы?
    #32455194
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, открыли слепому глаза (как гриться - скажи водке НЕТ !) - теперь вижу ясно :)

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


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