想把这段文体写入数据库中:/*
On Error Resume Next
Dim strTempIf LCase(Request.ServerVariables("HTTPS")) = "off" Then
 strTemp = "http://"
Else
 strTemp = "https://"
End IfstrTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")strTemp = strTemp & Request.ServerVariables("URL")If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)strTemp = LCase(strTemp)If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators")  or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"'") or Instr(strTemp,"%20or%20") then
 Response.Write "<script language='javascript'>"
 Response.Write "alert('非法地址!!');"
 Response.Write "location.href='error.asp';"
 Response.Write "<script>"
End If
*/
string SqlInsert = "Insert into Program (Content) Values('"+strContent+"')";
SqlCommand myCommandInsert = new SqlCommand(SqlInsert,Conn);
myCommandInsert.ExecuteNonQuery ();
用这种方法,总是出错,,说是SQl语句有误
用什么方法,写入,能不错,,,,

解决方案 »

  1.   

    先把这个SQL语句在查询分析器里看一下,看错误在哪里
    有可能你的表名或字段名是关键字
      

  2.   

    你的数据库是SQL还是ORA?content字段的类型是什么?如果是char或者nvchar,长度就不够了。ORA里有个blob字段类型;SQL里有binary、text字段类型,可以存储大字符串。
      

  3.   

    把里面所有sql中用到的特殊字符替换
      

  4.   

    试试这个:
    string SqlInsert = "Insert into Program (Content) Values('"+Replace(trim(strContent),"'","''")+"')";
    SqlCommand myCommandInsert = new SqlCommand(SqlInsert,Conn);
    myCommandInsert.ExecuteNonQuery ();
      

  5.   

    strContnet=@+strContent;
    string SqlInsert = "Insert into Program (Content) Values('"+strContent+"')";
    SqlCommand myCommandInsert = new SqlCommand(SqlInsert,Conn);
    myCommandInsert.ExecuteNonQuery ();
      

  6.   

    一句话,内容里面的字符与SQL执行串冲突了。问题是简单,建意楼主去看一下SQL联机丛书,找出里面的关键字符,然后把你这代码里面的替换了。不过可能这样你要回显的时候又有出入了。你也可以把文本进行编码,比如转换成ASSCII码等等方法了,这里只是说个思路,性能方面要自己看情况了。
      

  7.   

    http://blog.csdn.net/zdliang/archive/2005/06/06/388568.aspx
      

  8.   

    肯定是特殊字符的问题
    用命令参数吧,就是SqlCommand.Parameters