sqlexception消息显示导致页面错误

时间:2010-08-24 08:29:11

标签: javascript html vb.net sqlexception

我有一个带有几个输入字段(几个int和字符串)和第三方gridview的aspx页面。 验证数据,并从后面的代码调用存储过程以将数据保存在DB中。

Gridview能够向用户显示错误框,可以从后面的代码中调用。因此,当我捕获异常时,我给它我的错误消息(错误消息是 类似于:“数据无法保存到数据库。错误:”&显示错误框的ex.message和call函数。

通常这很好用,但是(哦,我讨厌这个但是)当我试图显示sqlexception时,我在页面上出现了javascript / html错误,并且没有显示错误框。

我得出结论,ex.message包含一些可以通过此javascript / html错误框显示的字符。

所以,我尝试使用System.Web.HttpUtility.HtmlEncode(ex.message),但它没有用。

出于好奇,我也做了System.Web.HttpUtility.UrlEncode(ex.message)然后我能够显示错误信息,但当然它有“+”而不是空格

示例:无法在+ object +'dbo.TableName'中加+ + + + + + + + + + + + + +'+ IX_Unique_Dan'。%0d%0a +语句+已+ +已终止。

是否有内置方法可以删除不需要的字符,eofs和类似字符? 目前我正在使用名为CleanString的函数来检查字符串中的字符。 它看起来像这样......

For Each c As Char In value.ToCharArray()
    If (Char.IsLetterOrDigit(c)) Then
        msg = msg & c
    ElseIf (c = ".") Then
        msg = msg & "."

        .
        .
        .

    Else
        msg = msg & " "
    End If
Next

TNX, Benxy

2 个答案:

答案 0 :(得分:0)

也许你需要逃避报价?用反对的单引号替换每一个引用。

是否可以使用发生错误的javascript / html源代码行粘贴确切的浏览器错误消息。

答案 1 :(得分:0)

错误消息和HtmlEncode()不太可能出现问题,更有可能是您网页上运行的其他一些javascript导致问题。

在此处提供错误消息,我们可以确定。

此外,这是面向公众的吗?你真的不应该向用户显示内部错误,特别是当它来自数据库时,你可能会打开一个安全漏洞。

相关问题