110,536
社区成员
发帖
与我相关
我的任务
分享
public StringBuilder SerializeDS(System.Data.DataTable pDT)
{
try
{
StringBuilder mSB = new StringBuilder();
string mSplitChar = System.Text.Encoding.Default.GetString(new byte[] { 0x1E });
mSB.Append("<DSRoot>");
mSB.Append("<DSHead>");
if (pDT.Columns.Count > 0)
{
mSB.Append(pDT.Columns[0].ColumnName + ":" + pDT.Columns[0].DataType.Name);
for (int i = 1; i < pDT.Columns.Count; i++)
{
mSB.Append(mSplitChar + pDT.Columns[i].ColumnName + ":" + pDT.Columns[i].DataType.Name);
}
}
mSB.Append("</DSHead>");
mSB.Append("<DSBody>");
for (int i = 0; i < pDT.Rows.Count; i++)
{
mSB.Append("<DSRow>");
if (pDT.Columns.Count > 0)
{
mSB.Append(GetSerializeString(pDT.Columns[0].DataType, pDT.Rows[i][0]));
for (int j = 1; j < pDT.Columns.Count; j++)
{
mSB.Append(mSplitChar + GetSerializeString(pDT.Columns[j].DataType, pDT.Rows[i][j]));
}
}
mSB.Append("</DSRow>");
}
mSB.Append("</DSBody>");
mSB.Append("</DSRoot>");
return mSB;
}
catch (NullReferenceException NullEx)
{
throw NullEx;
}
catch (Exception Ex)
{
throw Ex;
}
}
private string GetSerializeString(Type pType, object pValue)
{
try
{
if (pType == typeof(System.String))
{
if (pValue != System.DBNull.Value)
{
return pValue.ToString();
}
else
{
return "";
}
}
else if (pType == typeof(System.DateTime))
{
try
{
if (pValue.ToString().Trim() != "")
{
return ((System.DateTime)pValue).ToString("yyyy-MM-dd HH:mm:ss");
}
else
{
return "1900-01-01";
}
}
catch
{
return "1900-01-01";
}
}
else if ((pType == typeof(System.Int32))
|| (pType == typeof(System.Int16))
|| (pType == typeof(System.UInt32))
|| (pType == typeof(System.UInt16))
|| (pType == typeof(System.Decimal))
|| (pType == typeof(System.Double))
)
{
try
{
if (pValue.ToString().Trim() != "")
{
return pValue.ToString();
}
else
{
return "0";
}
}
catch
{
return "0";
}
}
else if (pType == typeof(System.Boolean))
{
try
{
if (pValue.ToString().Trim() != "")
{
return ((bool)pValue).ToString();
}
else
{
return "false";
}
}
catch
{
return "false";
}
}
else if (pType == typeof(System.Guid))
{
try
{
if (pValue.ToString().Trim() != "")
{
return ((System.Guid)pValue).ToString();
}
else
{
return System.Guid.Empty.ToString();
}
}
catch
{
return System.Guid.Empty.ToString();
}
}
else if (pType == typeof(System.Byte))
{
try
{
if (pValue.ToString().Trim() != "")
{
return Convert.ToString(((Byte)pValue), 16).PadLeft(2, '0');
}
else
{
return "00";
}
}
catch
{
return "00";
}
}
else
{
try
{
return pValue.ToString();
}
catch
{
return "";
}
}
}
catch (NullReferenceException NullEx)
{
throw NullEx;
}
catch (Exception Ex)
{
throw Ex;
}
}
"<DataTable xmlns=\"http:\/\/schemas.datacontract.org\/2004\/07\/System.Data\"><xs:schema id=\"NewDataSet\" xmlns:xs=\"http:\/\/www.w3.org\/2001\/XMLSchema\" xmlns=\"\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\"><xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"ShowModel\" msdata:UseCurrentLocale=\"true\"><xs:complexType><xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\"><xs:element name=\"ShowModel\"><xs:complexType><xs:sequence><xs:element name=\"LineSignID\" type=\"xs:string\" minOccurs=\"0\"\/><xs:element name=\"LineSignName\" type=\"xs:string\" minOccurs=\"0\"\/><\/xs:sequence><\/xs:complexType><\/xs:element><\/xs:choice><\/xs:complexType><\/xs:element><\/xs:schema><diffgr:diffgram xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\"><DocumentElement xmlns=\"\"><ShowModel diffgr:id=\"ShowModel1\" msdata:rowOrder=\"0\" diffgr:hasChanges=\"inserted\"><LineSignID>Y<\/LineSignID><LineSignName>班轮<\/LineSignName><\/ShowModel><ShowModel diffgr:id=\"ShowModel2\" msdata:rowOrder=\"1\" diffgr:hasChanges=\"inserted\"><LineSignID>N<\/LineSignID><LineSignName>非班轮<\/LineSignName><\/ShowModel><ShowModel diffgr:id=\"ShowModel3\" msdata:rowOrder=\"2\" diffgr:hasChanges=\"inserted\"><LineSignID>H<\/LineSignID><LineSignName>核心班轮<\/LineSignName><\/ShowModel><\/DocumentElement><\/diffgr:diffgram><\/DataTable>"