我看到正在插入数据库的数据中出现奇怪的行为。在表中插入记录时说“table1”,其中一列包含如下值:
?<?xml version="1.0" encoding="utf-8" ?>
- <OrderPayLoad xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OrderID>182806333</OrderID>
<CreatedDateTime>2011-11-27T22:59:37.56</CreatedDateTime>
<MarketCode>XXX</MarketCode>
<AccountNumber>0</AccountNumber>
<MobileNumber>0</MobileNumber>
<OrderTotal>0</OrderTotal>
<OrderTaxTotal>0</OrderTaxTotal>
<PaymentMethod>NCC</PaymentMethod>
<ReceiptMethod>P</ReceiptMethod>
<ShippingInfo>
<FreightTypeID>1</FreightTypeID>
<ShippingAddressType>STANDARD</ShippingAddressType>
</ShippingInfo>
<BillingInfo>
<BillToZip>-</BillToZip>
</BillingInfo>
<OrderDetails />
<PaymentCard />
<OrderRoutingID>2</OrderRoutingID>
</OrderPayLoad>
直到我到达dbTransaction.Commit();我在列中看到了上面的XML数据。当我检查数据库并提取相同的记录时,我看到一个额外的字符加上XML的前缀。
知道为什么会这样吗?需要帮助尽快
答案 0 :(得分:0)
您错过了结束标记</OrderPayLoad>
,因此下面是正确的xml,请使用此代码:
<?xml version="1.0" encoding="utf-8" ?>
<OrderPayLoad xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OrderID>182806333</OrderID>
<CreatedDateTime>2011-11-27T22:59:37.56</CreatedDateTime>
<MarketCode>XXX</MarketCode>
<AccountNumber>0</AccountNumber>
<MobileNumber>0</MobileNumber>
<OrderTotal>0</OrderTotal>
<OrderTaxTotal>0</OrderTaxTotal>
<PaymentMethod>NCC</PaymentMethod>
<ReceiptMethod>P</ReceiptMethod>
<ShippingInfo>
<FreightTypeID>1</FreightTypeID>
<ShippingAddressType>STANDARD</ShippingAddressType>
</ShippingInfo>
<BillingInfo>
<BillToZip></BillToZip>
</BillingInfo>
<OrderDetails />
<PaymentCard />
<OrderRoutingID>2</OrderRoutingID>
</OrderPayLoad>
答案 1 :(得分:0)
SQL列的数据类型是什么?前缀char可以是UTF-8使用的“BOM”(字节顺序标记)。如果您的列是text,char或varchar而不是ntext,nchar或nvarchar,则可能会在数据前面生成额外的符号。
答案 2 :(得分:0)
此问题已自动修复,最好重现它。无法找到实际的根本原因。