读取转换规则中的单据类型映射(处理SQLSERVER的XML字段)

发布时间 2023-08-22 18:32:46作者: 木古白水

DataSet dsBillTypeMap = null;
string sql = string.Format(@"/*dialect*/
SELECT FKERNELXML.query('//BillTypeMaps') BillTypeMaps ,
FID
FROM T_META_CONVERTRULE
WHERE FID = 'PUR_PurchaseOrder-PUR_ReceiveBill'");
var BillTypeMaps = DBUtils.ExecuteDynamicObject(this.Context, sql);
if (BillTypeMaps.Count > 0)
{
//方式1:转换为DataSet
dsBillTypeMap = new DataSet();
var BillTypeMapsStr = Convert.ToString(BillTypeMaps.First()["BillTypeMaps"]);
//读取字符串中的信息
StringReader reader = new StringReader(BillTypeMapsStr);
dsBillTypeMap.ReadXml(reader);

//方式2:直接读取
XmlDocument doc = new XmlDocument();
doc.LoadXml(BillTypeMapsStr);
foreach (XmlNode node in doc.SelectNodes("//BillTypeMap"))
{
string TargetBillTypeId = node.SelectSingleNode("TargetBillTypeId").InnerText;
string SourceBillTypeId = node.SelectSingleNode("SourceBillTypeId").InnerText;
}
}