日期:2014-05-20  浏览次数:20429 次

页面显示,将数据库的数字值 显示为时间的格式!!
conn.Open();
    OleDbCommand   cmd   =   new   OleDbCommand( "SELECT   PART_NO,   SHOP_NO,   OP_NO,   MACH_NO,   LABOR,   START,   STOP,   DUE_DATE,   QTY,   DEPT_NO   FROM   nqry_Optimized_Schedule ",   conn);
DataSet   ds     =   new   DataSet();
OleDbDataAdapter   adapter     =   new   OleDbDataAdapter(cmd);
adapter.Fill(ds,   "nqry_Optimized_Schedule ");
DataShow.DataSource   =   ds.Tables[ "nqry_Optimized_Schedule "].DefaultView;
DataShow.DataBind();
DataShow.PagerStyle.Visible   =   false;
ShowStats();
相应的html的datashow程序有:  
<asp:BoundColumn   DataField= "START "   HeaderText= "Start ">
<HeaderStyle   Height= "25px "   Width= "10% "> </HeaderStyle> </asp:BoundColumn>
<asp:BoundColumn   DataField= "STOP "   HeaderText= "STOP "   >
<HeaderStyle   Height= "25px "   Width= "10% "> </HeaderStyle> </asp:BoundColumn>
以上是一个asp.net   application   的一个文件的部分程序,我的问题是:在access数据库中start   and   stop是OLEOA   的格式,不是时间的格式,比如说一个值是39172.0446, 现在我的程序会将这些数据的值在页面上显示出来,但是我希望显示出来的不是这些double数字格式,而是时间格式,像2007-02-10   18:20:22   这样, 请问以上的程序要做哪些改动才能得到这样的结果?  谢谢!!

------解决方案--------------------
很简单,用模板列,然后里面绑定的时候用:
<%# DateTime.FromOATime((float)Eval( "字段名 "))%>

那个方法是否叫 FromOATime我不太记得,反正有from和OA,并且输入参数是个浮点数字(忘记是float还是double了,返回值是DateTime)有代码提示的嘛,你自己按个点就出来了,绝对有的
------解决方案--------------------
<%# DateTime.FromOADate((double)Eval( "STOP "))%>

------解决方案--------------------
<asp:BoundColumn DataField= "START " HeaderText= "Start ">
<HeaderStyle Height= "25px " Width= "10% ">
</HeaderStyle>
<Item...>
<%# DateTime.FromOATime((float)Eval( "START "))%>
</Item..>
</asp:BoundColumn>