C # DataGridView DefaultCellStyle.Format не работает для дд / мм / гггг с автоматически сгенерированными столбцами - PullRequest
0 голосов
/ 22 октября 2018

У меня есть DataGridView, который автоматически генерирует столбцы из источника данных (запрос SQL).

Одним из этих полей является поле DATE (специально преобразованное в DATE в запросе SQL).

Однако DataGridView по-прежнему показывает его с частью TIME, равной 00:00:00, несмотря на то, что для DefaultCellStyle.Format задано значение "dd / MM / yyyy", а для ValueType - typeof (System.DateTime);

Код:

dgvCharges.AutoGenerateColumns = true;
dgvCharges.DataSource = devChargesSchema.Tables["Charges"].DefaultView;
dgvCharges.AutoGenerateColumns = false;

dgvCharges.Columns["dNextChargeDate"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dgvCharges.Columns["dNextChargeDate"].HeaderText = "Next Charge Date";
dgvCharges.Columns["dNextChargeDate"].DefaultCellStyle.Format = "dd/MM/yyyy";
dgvCharges.Columns["dNextChargeDate"].ValueType = typeof(System.DateTime);                

Я искал эту проблему, и все ответы говорят о том, чтобы сделать то, что у меня уже есть.

Я пытался: -

С и без ValueType

Установка формата "dd-MM-гггг", "гггг / мм / дд" и "гггг-мм-дд"

с помощьюValueType до и после DefaultCellStyle

Удаление dgvCharges.AutoGenerateColumns = false;

Удаление .DefaultView;из строки набора DataSource

Все вышеперечисленные комбинации

Независимо от того, что я пытаюсь, столбец всегда отображается как dd-MM-гггг 00: 00: 00

Время всегда там, разделитель всегда дефис, а не косая черта, и порядок всегда дд ММ гггг, даже если я скажу, что это гггг ММ дд

1 Ответ

0 голосов
/ 24 октября 2018

Решено: оно преобразовывалось в строку в разделе между запросом SQL и DataGridView.

После комментария SeM я дважды проверил весь код (это старый код, который я унаследовал), иСхема, которая использовалась в середине, имела поле, определенное как строка вместо DateTime.

Изменено определение, и теперь все работает правильно.

Спасибо SeM!:)

...