2011-04-13 155 views
3

我有关于将HTML数据插入SQL Server的问题。这里是细节:将HTML数据插入到SQL Server中

这是我的存储过程;

@articleID int, 
@articleBody nvarchar(max) 
AS 

UPDATE v2_Articles SET articleBody = @articleBody WHERE articleID = @articleID 

这是我的asp代码插入数据;

x_articleBody = Replace(Replace(Request.Form("x_articleBody"), CHR(34), """"), "'", """") 

Connection.Open(ConnStr) 
Connection.Execute("EXEC InsertBody @articleID = " & aID & ", _ 
@articleBody = '" & x_articleBody & "'")    
Connection.Close() 

这是我的插入数据;

<font> TEXT TEXT &nbsp;&nbsp; TEXT TEXT</font> 

所以,问题是:当我尝试这一点,数据保存,直到

&nbsp; 

这意味着过程中SQL表后改变等;

<font> TEXT TEXT 

有什么想法吗?

ps。我正在使用nicedit文本编辑器来生成html数据。

+0

这是各种不好的。为什么要在数据库中保存HTML?你是否验证你的论点?你如何避免保存恶意HTML?您应该使用sproc而不是动态SQL。等等 – n8wrl 2011-04-13 11:10:05

+0

,因为没有人可以插入任何恶意HTML,这是本地应用程序,除了admin =)) – 2011-04-13 11:53:20

回答

2

首先,不要使用嵌入式SQL - 这样做会让您头痛不已,因为您必须经历这个数据清理混乱,并且将您的应用程序暴露给潜在的SQL Injection

创建一个将文本作为参数的存储过程,并使用它来保存您的HTML标记。

+0

以外的任何页面都不可访问Kon,能否请您提供关于将文本作为参数的建议=) – 2011-04-13 11:54:51