xml序列化成字符插入SQL2005里xml字段的编码问题

xml序列化成字符插入SQL2005里xml字段的编码问题 今天遇到了个问题,纠结了很久,将xml序列化成字符串StringWriter的时候会出现编码为"utf-16"的问题,导致无法插入sql的xml字段中,我使用了一个很简单的办法,看代码:

View Code
1   StringBuilder sb = new StringBuilder();2             StringWriter tw = new StringWriter(sb);3             Type type = info.GetType();4             XmlSerializer sz = new XmlSerializer(type);5             sz.Serialize(tw, info);6             tw.Close();7 8             string s = tw.ToString().Replace("encoding=\"utf-16\"", "");复制代码
 将xml的encoding="utf-16"替换成空就可以这样

View Code
1   SqlConnection conn2 = new SqlConnection("server=.;database=BBWSDC;uid=sa;pwd=panan");2             conn2.Open();3             SqlCommand dtp2 = new SqlCommand("INSERT INTO Base_xml(xmlconent) VALUES(" + "'" + s + "'" + " )", conn2);4             dtp2.ExecuteNonQuery();5             conn2.Close();复制代码顺利的插入xml数据类型的字段为不出现编码问题了!

以下是所有代码:

 

View Code
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Xml.Serialization; 8 using System.Data.SqlClient; 9 using System.Text;10 using System.IO;11 12 namespace usexml13 {14     public partial class WebForm4 : System.Web.UI.Page15     {16         protected void Page_Load(object sender, EventArgs e)17         {18 19         }20 21         public class XMLInfo22         {23             [XmlElement(ElementName = "核心数据名称")]24             public string CoreMDName;//核心元数据名称25             [XmlElement(ElementName = "访问级别编号")]26             public int AccessLevelID;//访问级别编号27         }28         protected void Button1_Click(object sender, EventArgs e)29         {30             XMLInfo info = new XMLInfo();31             info.AccessLevelID = 1;32             info.CoreMDName = "盘小帅";33 34            35              StringBuilder sb = new StringBuilder();36             StringWriter tw = new StringWriter(sb);37             Type type = info.GetType();38             XmlSerializer sz = new XmlSerializer(type);39             sz.Serialize(tw, info);40             tw.Close();41 42             string s = tw.ToString().Replace("encoding=\"utf-16\"", "");43             SqlConnection conn2 = new SqlConnection("server=.;database=BBWSDC;uid=sa;pwd=panan");44             conn2.Open();45             SqlCommand dtp2 = new SqlCommand("INSERT INTO Base_xml(xmlconent) VALUES(" + "'" + s + "'" + " )", conn2);46             dtp2.ExecuteNonQuery();47             conn2.Close();48 49         }50     }51 }复制代码有更好的办法可以交流一下!

 

posted on 2011-12-26 15:48  maomaom  阅读(250)  评论(0编辑  收藏  举报

免费发布信息免费发布供求信息免费发布分类信息