【发布时间】:2011-04-21 20:22:36
【问题描述】:
我正在尝试将 AS/400 文件的内容拉回数据绑定的 .NET WinForms DataGridView (VS 2010)。查询本身没有问题,我可以使用网格的 DataSource 属性绑定所有内容。数据返回没有问题。
我我遇到的问题是所有日期/时间字段都以字符串文字形式返回,因此无法排序。此外,它使用我们默认的 AS/400 格式(yyyy-dd-mm 和 hh.mm.ss)返回。我希望它们作为实际的日期/时间字段返回,以便对它们进行排序并且我可以控制输出格式(我更喜欢 MM/dd/yyyy 和 hh:mm:ss AMPM)。我尝试使用 TIMESTAMP 格式将这两个字段组合为一个,但这只是给了我一个组合字符串。
我希望尽可能避免进行任何字段按摩,并且我希望保持表格数据绑定以便于编码,但如果我必须关闭列自动生成,我会这样做。我还想避免执行任何中间 LINQ 查询,因为我失去了开箱即用的按列排序的能力(而且我在网上看到的添加此功能的示例都很长而且很痛苦)。
任何人都可以提出任何建议吗?谢谢!
编辑:代码示例。查询值的 SQL(更改名称以保护无辜者)是:
SELECT MYDATE, MYTIME, TIMESTAMP(MYDATE, MYTIME)
FROM LIBNAME.FILENAME
WHERE <blah blah blah>
SQL 查询通过 OleDbDataAdapter.Fill 命令写入 DataTable。
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
非常简单(如果可能,尽量保持这种方式)
【问题讨论】:
-
你能提供一些你是如何做到这一点的代码吗?这将有助于回答问题。
-
好点。编辑以包含一些基本代码。
标签: sql winforms datagridview db2 ibm-midrange