如何将html插入我的表格?

时间:2014-02-24 13:44:39

标签: c# asp.net asp.net-mvc-4 razor

我想将格式化文本保存到表格中,然后使用这个输出HTML的丰富文本编辑器。当我运行它时,我得到:

  

解析查询时出错。 [令牌行号= 1,令牌   line offset = 31,Token in error =< ]

我的命令如下:

new SqlCeCommand("UPDATE Bio SET text = " + form["textbox"].Replace("\"", """) + " WHERE id = " + ViewBag.Id, conn)

但我想它不喜欢<&gt ;,我需要更换什么?与<>?一样使用引号任何逃避这一切的函数?

1 个答案:

答案 0 :(得分:2)

有关将要插入的文本作为参数传递的示例,请参见此处: http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlcecommand.parameters(v=vs.100).aspx

根据MattD的建议 - 这是示例代码。请注意,我实际上没有运行此操作,如果存在语法问题,请留下备注,我会修复它。无论如何,这应该可以让你获得99%的支持。

另请注意:以这种方式使用参数总是一个好主意,而不是将文字文​​本附加到sql查询中。这消除了SQL注入错误或黑客攻击的可能性,有人可能会恶意输入完成SQL的文本,然后添加自己的SQL也将被执行。

SqlCeCommand command = new SqlCeCommand("UPDATE Bio SET text = @htmlText WHERE id = @id", conn);

SqlCeParameter param;

// NOTE:
// For optimal performance, make sure you always set the parameter
// type and the maximum size - this is especially important for non-fixed
// types such as NVARCHAR or NTEXT; In case of named parameters, 
// SqlCeParameter instances do not need to be added to the collection
// in the order specified in the query; If however you use ? as parameter
// specifiers, then you do need to add the parameters in the correct order
//
param = new SqlCeParameter("@id", SqlDbType.Int);
command.Parameters.Add(param);
param = new SqlCeParameter("@htmlText", SqlDbType.NVarChar, -1);
command.Prepare();

//Set the values and the length of the string parameter
command.Parameters[0].Value = ViewBag.Id;
command.Parameters[1].Value = form["textbox"];
command.Parameters[1].Size = form["textbox"].Length;



// Execute the SQL statement
//
command.ExecuteNonQuery();