C# отключить автоформатирование в SqlDataReader - PullRequest
0 голосов
/ 21 марта 2020

Я использую SqlConnection, MySqlConnection и OracleConnection в WPF для получения содержимого таблиц в базах данных.

Когда я пытаюсь получить вывод из таблицы, все работает отлично. Но если какой-либо из атрибутов сеанса имеет тип даты, он автоматически переформатируется с '2020-02-20' до '20/02/2020 12:00:00 AM', и мне нужно, чтобы эта дата оставалась такой же, как и сейчас. и не форматировать во всех трех типах баз данных. Как я могу предотвратить автоматическое форматирование?

Возможно, что он также выполняет другой тип, но я не заметил.

В командной строке он возвращает значения даты правильно, так как они были вставлены в таблицу.

На SQL сервере я получаю такие данные:

DataTable dt = new DataTable();

using (cmd = new SqlCommand(query, conn))
{
      SqlDataAdapter da = new SqlDataAdapter(cmd);
      da.Fill(dt);
}

dataGrid.DataContext = dt;

Где query - это строка типа SELECT * FROM STUDENT, и dataGrid определен в XAML вот так

<DataGrid ItemsSource="{Binding}"  x:Name="dataGrid" IsReadOnly="True"/>

Отредактировано: когда я загружаю данные в какой-либо массив или список, он возвращает даты в формате: 20.02.2020 0:00:00, что также неверно.

Спасибо

1 Ответ

0 голосов
/ 21 марта 2020

. NET просто не имеет типа данных для DATE, поэтому все типы даты и времени базы данных сопоставлены. NET s DateTime , который "Представляет момент времени обычно выражается в виде даты и времени суток. " И в этом отображении DATE отображается на полночь в этот день.

Так что, хотя SqlDataReader знает о типах данных SQL Server, когда вы используете DataAdapter и загружаете данные в DataTable, все данные переводится с SQL Типы серверов на. NET типы.

Вы получите DateTime на клиенте, и вы сами должны правильно его отобразить. Если вы хотите, чтобы у нас был формат отображения, который не показывает часть времени, вы можете. EG

Форматирование даты в сетке данных WPF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...