Я пытаюсь вернуть содержимое файла AS / 400 обратно в привязанный к данным .NET WinForms DataGridView (VS 2010).Сам запрос не является проблемой, и я могу связать все, используя свойство DataSource сетки.Данные возвращаются без проблем.
Проблема, с которой я я сталкиваюсь, заключается в том, что все поля даты / времени возвращаются как строковые литералы, что делает невозможной сортировку.Более того, он возвращается с использованием наших стандартных форматов AS / 400 (гггг-дд-мм и чч.мм.сс).Я хотел бы, чтобы они возвращались как настоящие поля даты / времени, чтобы их можно было сортировать, и я мог контролировать формат вывода (я бы предпочел MM / dd / yyyy и чч: мм: сс AMPM).Я попытался объединить два поля в одно с использованием формата TIMESTAMP, но это просто дало мне объединенную строку.
Я бы хотел по возможности избегать какого-либо массирования полей, и я хотел бы сохранить привязку данных таблицы для простоты кодирования, хотя, если мне придется отключить автогенерацию столбцов, я сделаютак.Я также хотел бы избежать выполнения каких-либо промежуточных запросов LINQ, поскольку я теряю возможность сортировки по столбцам из коробки (и примеры, которые я видел в Интернете для добавления этого, все длинные и болезненные).
Кто-нибудь может предложить что-нибудь?Спасибо!
РЕДАКТИРОВАТЬ: Пример кода.SQL для запроса значений (с измененными именами для защиты невинных):
SELECT MYDATE, MYTIME, TIMESTAMP(MYDATE, MYTIME)
FROM LIBNAME.FILENAME
WHERE <blah blah blah>
SQL-запрос записывается в DataTable с помощью команды OleDbDataAdapter.Fill.
Dim myTable as New DataTable
Using adapter As New OleDbDataAdapter
adapter.SelectCommand = New OleDbCommand(<sql statement>, <AS/400 Connection>)
adapter.Fill(myTable)
Return myTable
End Using
DataTable получаетвстроенный в DataGridView:
grid.DataSource = FunctionCallToGrabTheDataAbove
Довольно просто (и пытается сохранить это таким образом, если это возможно)