【发布时间】:2016-07-28 13:05:23
【问题描述】:
我已经研究这个问题一天多了,阅读了很多帖子并尝试了许多格式选项,但没有任何乐趣。本质上,我正在使用 OleDbDataAdapter 连接从数据库中填充数据网格视图。数据库中的日期列格式正确,但日期显示为非常大的双数(10 位)。 我尝试在 SQL 语句中创建一个新的格式化列,但只得到一个较短的数字(5 位),即选择 START_DATE, datepart(START_DATE) as SDATE format=date9。从表;因此,我得到的不是 1776772799,而是 20550 ...当我查看实际表时,格式化的值是 06APR2016:00:00:00 ... 或 06APR2016,使用 date9 数据库格式。 我的情况奇怪的是,每次“格式化”的尝试都只是将格式值作为字符串。我无法嵌入图像,但格式化的日期列显示 [dd/MMM/yyyy](或我尝试使用的任何格式),未格式化的列显示一个数字,即 [1776772799]。 寻找一些想法。谢谢
private void loadForm()
{
OleDbConnection conn3 = new OleDbConnection(conn3str);
string qEvent = "select * from tablename ;";
//string qEvent = select * , datepart(START_DATE) as SDate format=date9. from tablename ;
OleDbDataAdapter daEvent = new OleDbDataAdapter(qEvent, conn3);
DataSet dsEvent = new DataSet();
conn3.Open();
daEvent.Fill(dsEvent, "event_table");
conn3.Close();
dgvMngEvnts.DataSource = dsEvent;
dgvMngEvnts.DataMember = "event_table";
dgvMngEvnts.Rows[0].Selected = false;
//string dgvFormat = "dd/MMM/yyyy";
//dgvMngEvnts.Columns[4].DefaultCellStyle.Format = dgvFormat;
dgvMngEvnts.Columns[4].DefaultCellStyle.Format =@"dd/MMM/yyyy";
//dgvMngEvnts.Columns[4].DefaultCellStyle = new DataGridViewCellStyle { Format = "dd'/'MM'/'yyyy" };
}
【问题讨论】:
-
在这种情况下
tablename中的列是什么?只是这样我可以复制 -
是一个SAS数据集,基本结构是:EVENT_END_DATE Num 8 DATETIME19。 EVENT_END_DATE EVENT_LAST_UPDATE Num 8 DATETIME19。 EVENT_LAST_UPDATE EVENT_START_DATE 数字 8 DATETIME19。 EVENT_START_DATE
标签: c# datagridviewcolumn oledbdataadapter