[英]Xml file show incorrect time data after exported it from gridview
我有一個顯示某些信息的gridview。 這些信息之一是時間數據,例如:19:40:00.0000000。 當我嘗試使用WriteXml將gridview導出到xml文件時,發現我的時間數據不正確,看起來像是PT7H50M。
->我的時間數據:將gridview中的19:40:00.0000000導出到xml文件后,轉換為:PT7H50M為什么又如何解決此問題?
這是xml文件中的樣子:
這是導出代碼:
DataTable Rdt =新的DataTable(); DataSet Rds = new DataSet();
Rdt = (DataTable)GV_Report.DataSource;
Rds.Tables.Add(Rdt.Copy());
Rds.WriteXml(@"c:\Reporting\Work_Hours_Report.xml", System.Data.XmlWriteMode.IgnoreSchema);
XmlDocument doc = new XmlDocument();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(@"c:\Reporting\ReportType.xml", settings);
writer.WriteStartDocument();
writer.WriteComment("This file is generated by the program...Please do not change this file!!");
writer.WriteStartElement("ReportBut");
writer.WriteElementString("ButType", "Work_Hours_Report");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
我試圖通過向每個選定的列添加別名來編輯我的SQL語句,但是不幸的是,它沒有任何改進:
select CAST(DATEADD(MILLISECOND,SUM(DATEDIFF(MILLISECOND,0,CAST(ISNULL([Total_H],'00:00:00') AS DATETIME))),0) AS TIME) as '1',sum([HTotal]) as '2',sum([MTotal]) as '3',CAST(DATEADD(MILLISECOND,SUM(DATEDIFF(MILLISECOND,0,CAST(ISNULL([PH_Total],'00:00:00') AS DATETIME))),0) AS TIME) as '4',sum([PH]) as '5',sum([PM]) as '6',CAST(DATEADD(MILLISECOND,SUM(DATEDIFF(MILLISECOND,0,CAST(ISNULL([AH_Total],'00:00:00') AS DATETIME))),0) AS TIME) as '7',sum([AH]) as '8',sum([AM]) as '9' FROM [QAMNI].[dbo].[tbl_WorkHours_Details] where [Date] between '" + DF + "' and '" + DT + "' and [C_ID] ='" + txt_C_ID.Text + "'
根據@ Flynn1179先生的進度
我將XmlWriteMode從IgnoreSchema更改為WriteSchema,結果是正確的,沒有任何xsd:dayTimeDuration表示以天,小時,分鍾和秒為單位的持續時間。 xsd:dayTimeDuration的格式為PnDTnHnMnS,與我的報告文件中的一樣,更改后,我得到的時間與從數據庫中選擇的時間完全相同,而格式無任何更改。 謝謝大家的幫助。 這是將XmlWriteMode從IgnoreSchema更改為WriteSchema之后的XML文件:
它仍然顯示為xsd格式,但是當我使用Crystal Report將其打印出給最終用戶時,它為我提供了正確的時間格式為(“ hh:mm:ss”):
這就是我在代碼中所做的更改:(僅更改XmlWriteMode)
Rds.WriteXml(@"c:\Reporting\WorkHours_Report.xml", System.Data.XmlWriteMode.WriteSchema);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.