我正在尝试使用B1将System.Data.Datatable转换为System.Data.Datatable。
我试着用逐行的方式手动转换它,但是由于数据非常大,这需要花费太多的时间。
然后,我尝试使用SAP的DataTable.SerializeAsXML方法从中获取,使用SAP的方法获取B1 datatable,然后使用dt.ReadXml方法加载XML,但这是错误的。
我在另一个论坛上读到,、SAP、B1、Datatable、和的XML是不同的,需要使用XSLT进行转换。
请您提供任何方法和工具,以便我可以生成XSLT文件,以便将SAP B1 Datatable XML转换为System.Data.Datatable XML。
等待你的答复。
发布于 2019-04-29 07:31:51
我已经创建了一个方法,它将接受SAP (作为DataTable )并将其写入System.Data.DataTable
。
我不记得它是否给出了正确的数据类型,或者是否一切都是以字符串的形式出现的。
这是要旨。
public DataTable SapDataTableToDotNetDataTable(string pathToXmlFile)
{
var DT = new DataTable();
var XMLstream = new System.IO.FileStream(pathToXmlFile, FileMode.Open);
var XDoc = System.Xml.Linq.XDocument.Load(XMLstream);
var Columns = XDoc.Element("DataTable").Element("Columns").Elements("Column");
foreach (var Column in Columns)
{
DT.Columns.Add(Column.Attribute("Uid").Value);
}
var Rows = XDoc.Element("DataTable").Element("Rows").Elements("Row");
var Names = new List<string>();
foreach (var Row in Rows)
{
var DTRow = DT.NewRow();
var Cells = Row.Element("Cells").Elements("Cell");
foreach (var Cell in Cells)
{
var ColName = Cell.Element("ColumnUid").Value;
var ColValue = Cell.Element("Value").Value;
DTRow[ColName] = ColValue;
}
DT.Rows.Add(DTRow);
}
return DT;
}
https://stackoverflow.com/questions/53863118
复制相似问题