Я пытаюсь вернуть содержимое файла AS/400 обратно в DataGridView .NET WinForms, привязанный к данным (VS 2010). Сам запрос не представляет проблемы, и я могу связать все, используя свойство DataSource сетки. Данные возвращаются без проблем.Связывание столбцов DATE/TIME/TIMESTAMP с таблицами DATE/TIME/TIMESTAMP в DataGridView WinForms
Проблема в том, что все поля даты/времени возвращаются как строковые литералы, что делает невозможным сортировку. Более того, он возвращается с использованием стандартных форматов AS/400 по умолчанию (yyyy-dd-mm и hh.mm.ss). Я бы хотел, чтобы они вернулись в качестве фактических полей Date/Time, чтобы их можно было отсортировать, и я могу управлять выходным форматом (я бы предпочел MM/dd/yyyy и hh: mm: ss AMPM). Я попытался объединить два поля в один, используя формат TIMESTAMP, но это просто дало мне комбинированную строку.
Я бы хотел, чтобы это было возможно, если бы это было возможно, и я хотел бы сохранить таблицу данных для удобства кодирования, хотя, если мне нужно отключить автогенерацию столбцов, я сделаю это. Я также хотел бы избежать выполнения каких-либо промежуточных запросов LINQ, поскольку я теряю возможность сортировать по столбцам из коробки (и примеры, которые я видел в Интернете для добавления этого обратно, являются длительными и болезненными).
Может ли кто-нибудь предложить что-нибудь? Благодаря!
EDIT: Пример кода. 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
Довольно простой (и пытается сохранить его таким образом, если это возможно)
Можете ли вы предоставить некоторый код, как вы это делаете? Это поможет ответить на вопрос. –
Хорошая точка. Отредактировано, чтобы включить некоторый базовый код. –