首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#在写入SQL数据库时,怎么使html标签内容原样保存

2012-11-21 
c#在写入SQL数据库时,如何使html标签内容原样保存?我遇到这样一个问题,从一个旧的文章数据库里复制数据到

c#在写入SQL数据库时,如何使html标签内容原样保存?
我遇到这样一个问题,从一个旧的文章数据库里复制数据到另一个新数据库,当复制content字段时,由于content是文章的正文,里面包含了一些从WORD复制时带来的html样式标签,类似下面这样的内容:

HTML code
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center; mso-outline-level: 1" align=center><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 42pt"><FONT face="Times New Roman">


由于里面有<、>、"、'、等符号,导致在存入数据库时报错,请问该如何处理,才能使这样html内容原样保存进数据库?
注:我不想过滤掉这些html标签,因为丢失这些html样式会导致前台显示时版式发生变化,你懂的。



附:
下面是我把数据存入数据库时的写法,请各位指点一下该如何处理这个content字段,谢谢!

C# code
                conTo.Open();//打开数据库连接                SqlCommand cmd = new SqlCommand();                cmd.Connection = conTo;//设置连接属性                                //遍历dataset (名称为ds)里旧数据表的每一行                foreach (DataRow dr in ds.Tables["旧数据"].Rows)                {                    cmd.CommandText = @"insert into article (Title,Content) values ('" + dr["title"].ToString() + "','" + dr["content"].ToString() + "')";                    cmd.ExecuteNonQuery();                }                conTo.Close();//关闭数据库连接


[解决办法]
写入Sql数据库时用参数化SQL,取出显示时进行Html编码:Server.HtmlEncode("str");
[解决办法]
http://www.cnblogs.com/asdlx/archive/2010/05/14/1735410.html
[解决办法]
conTo.Open();//打开数据库连接
SqlCommand cmd = new SqlCommand();
cmd.Connection = conTo;//设置连接属性


//遍历dataset (名称为ds)里旧数据表的每一行
foreach (DataRow dr in ds.Tables["旧数据"].Rows)
{
cmd.CommandText = @"insert into article (Title,Content) values (@title,@content)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@title",dr["title"].ToString());
cmd.Parameters.AddWithValue("@content",dr["content"].ToString());
cmd.ExecuteNonQuery();
}



conTo.Close();//关闭数据库连接

热点排行