今天写了一个储存过程去存储DataTable转成XML字符
c#代码 DataTable转成XML的函数如下
public string DataTableToXml(DataTable dt)
{
try
{
if (dt == null)
{
return "";
}
using (MemoryStream stream = new MemoryStream())
{
using (XmlTextWriter writer = new XmlTextWriter(stream, Encoding.Unicode))
{
dt.WriteXml(writer);
int count = (int)stream.Length;
byte[] bytes = new byte[count];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(bytes, 0, count);
UnicodeEncoding encoding = new UnicodeEncoding();
string resultString=encoding.GetString(bytes).Trim();
return resultString;
}
}
}
catch (Exception ex)
{
//调用日志函数
throw ex;
}
}
函数返回的字符是:<NewDataSet><Gavin><NAME>Gavin</NAME></Gavin></NewDataSet>
OleDbParameter param = new OleDbParameter("@xmlstr", OleDbType.VarChar);这是传递参数
param.Value = DataTableToXml(dt);
但是在数据库里面会出现两种情况,下图:
就是多了一个特殊符号,我去掉单引号就不显示特殊符号了。如果多了这个特殊符号存到数据就在前面多了一个?号了
由于没有积分了所以只能在非技术版发了。请大神门多多指教。