Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim nrjdate As String = TextBox1.Text
        Dim ntitle As String = TextBox3.Text
        Dim nmessage As String = TextBox4.Text.ToString.Trim
        Dim nid As Integer = CType(TextBox5.Text, Integer)        Dim dbConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\webvb\testvb.mdb;Persist Security Info=False"
        Dim conn As OleDbConnection = New OleDbConnection(dbConnectionString)
        conn.Open()        Dim sql As String = ""
        sql = "update testvb set "
        sql += "rjdate='" & nrjdate & "',"
        sql += "title='" & ntitle & "',"
        sql += "message='" & nmessage & "'"
        sql += " where ID = " & nid        Dim cmd As New OleDbCommand(sql, conn)
        cmd.ExecuteNonQuery()
        cmd.Dispose()
        conn.Close()
        conn.Dispose()        'MsgBox("OK,修改成功!")    End SubVB.NET做的网页修改时,如果内容中有一些敏感字符,如:单引号,或其它符号或字母子,则保存失败! 
请问要如何过滤保存呢? 读出来时又如何正常读出呢? 请指教,谢谢!

解决方案 »

  1.   

    nrjdate ,ntitle 这些用参数形式添加进SQL。不要直接连。
      

  2.   

    用replace来把特殊符号替换掉或是清除比如把单引号替换成*-*然后再保存,读出来的时候再把*-*替换成单引号就可以了
      

  3.   

      Dim nmessage As String = TextBox4.Text.ToString.Trim.replace("'","*-*")......
      

  4.   

    啊! 这样处理,我记得好象有什么UBB代码过滤功能,最好是有一个函数,然后可以调用函数来过滤. 但没有找到.NET版的,郁闷~
      

  5.   

    参考HtmlEncode和HtmlDecode。
    使用HtmlEncode编码特殊字符,读出的时候使用HtmlDecode解码。
    但是无法编码单引号',在SQL中,'是转义符,因此使用双单引号表示一个单引号,也是就是你只需要把单引号'替换成双引号''。
      

  6.   

       Dim nmessage As String = TextBox3.Text.ToString.Trim
       'nmessage = Server.HtmlEncode(nmessage)  用了这句反而会出现一些<那样的字符出来,所以我把此句干脆不要了,只要下面那一句,结果反而就可以了.
       nmessage = Replace(nmessage, "'", "''")谢谢楼上的朋友帮忙指点!
      

  7.   

    LZ啊,&lt是<的编码,可以直接输出到网页上,页面显示出来就是<。你想一下,如果有人在提交的内容中加入HTML代码,你直接取出来显示会是什么结果。