public static class SerializeHelper {
private static readonly XmlSerializerNamespaces Namespaces = new XmlSerializerNamespaces();
static SerializeHelper() {
Namespaces.Add(string.Empty, string.Empty);
}
/// <summary>
/// 序列化数组为XML
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string SerializeXml<T>(T obj) {
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (MemoryStream stream = new MemoryStream()) {
serializer.Serialize(stream, obj, Namespaces);
return Encoding.UTF8.GetString(stream.ToArray());
}
}
public static T DeserializeXml<T>(string obj) {
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (StringReader reader = new StringReader(obj)) {
return (T)serializer.Deserialize(reader);
}
}
}
declare @PigID XML
set @PigID='<?xml version="1.0"?>
<ArrayOfString><string>201602242086590922</string></ArrayOfString>'
select N.value( '(text())[1]','VARCHAR(20)' ) PigID from @PigID.nodes('/ArrayOfString/string') V(N)
public static void UpdateSowState(string PigID) {
string[] PigIDs = PigID.TrimEnd(',').Split(',');
///将数组序列化成XML
string PigID2s = SerializeHelper.SerializeXml(PigIDs);
if (PigID2s.Length == 0) { PigID2s = "''"; }
int result;
try {
SqlParameter[] parameters = { new SqlParameter("@PigID", SqlDbType.Xml, 8000) };
parameters[0].Value = PigID2s.ToString();
int result2 = DataProviderFactory.DataProvider.RunProcedure("P_Update_Pig_SowState", parameters, out result);
}
catch (Exception ex) {
LogHelper.WriteLog("更新种猪状态异常! PigID:" + PigID + " " + ex.Message, ex);
}
}