如何替换sql语句中的“'”单引号,防止程序出错。
解决方案 »
- Response.Redirect()没有重定向到指定页面
- 如何循环遍历文件夹下面所有的图片 ?
- iframe 框架里面的htm页面调用是成功了,但是htm的视屏播放没有实现,不知道什么原因(求助)
- 一个员工表,我给Datagrid绑定,而我想让经理行(IsMaster = 1)的背景色设为红色
- 用户控件的page_load事件不执行?
- 急,请求帮助,在线等待
- 如何遍历所有各种类型的Session值?
- 生成静态页的思路~~~
- 急死了,请帮我看看错在哪?
- 困惑+郁闷有谁用过用XML维护一个TreeView=====解决再加贴给分
- 数据库事务问题
- 新手 求一段 dataset 对像的使用例子 !!!!!!!!!!!!!!!!!
select * from tbTest where aCol = '123' and bCol <> 'w_w'c-c'
select * from table where NewsID=@NewsID
还有更好的办法吗?
str_SQL="select * from '" & TableName & "'"
ReqStr = Replace ( Trim(Request(as_Name)), "'", "''" )
End Function
public static string Encode(String s)
{
String tempstr="";
tempstr+=s.Replace("<","<");
tempstr=tempstr.Replace(">",">");
tempstr=tempstr.Replace(" "," ");
tempstr=tempstr.Replace("\'","\"");
return tempstr;
}
public static string Decode(String s)
{
String tempstr="";
tempstr+=s.Replace("<","<");
tempstr=tempstr.Replace(">",">");
tempstr=tempstr.Replace(" "," ");
tempstr=tempstr.Replace("\"","\'");
return tempstr;
}
我这样写了为什么没效果?
MyCommand = new MySqlCommand("update inform set inf_title=@title,inf_code=@code,inf_content=@content where inf_id=@id",DBConn);
MyCommand.Parameters.Add("@title",txttitle.Text);
MyCommand.Parameters.Add("@code",txtcode.Text);
MyCommand.Parameters.Add("@content",FreeTextBox1.Text);
MyCommand.Parameters.Add("@id",Int32.Parse(Request.QueryString["infid"]));
不信可以试试!
这样构造出来的语句是没有任何错误的,但是后果缺.......
'QueryString检查
Sub QSqlSafe()
Dim BadSql, ArrBad, GetQ, i
BadSql = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
ArrBad = Split(BadSql,"|")
If Request.QueryString <>"" Then
For Each GetQ In Request.QueryString
For i = 0 To Ubound(ArrBad)
If Instr(Request.QueryString(GetQ),ArrBad(i)) > 0 Then
Response.Write "forbid"
Response.End()
End if
Next
Next
End If
End Sub
'form提交检查
Sub FSqlSafe()
Dim BadSql, ArrBad, GetQ, i
BadSql = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
ArrBad = Split(BadSql,"|")
If Request.Form <>"" Then
For Each GetQ In Request.QueryString
For i = 0 To Ubound(ArrBad)
If Instr(Request.QueryString(GetQ),ArrBad(i)) > 0 Then
Response.Write "forbid"
Response.End()
End if
Next
Next
End If
End Sub
现在只能自己写一个函数来扫描SQL,动态判断那些'是SQL 内的,那些是外的了,判断逻辑应该不会太难!
————————————————————————————————————————
问题错!替换sql语句中的单引号干什么????只需要替换sql语句中字符串(这些通常被放在单引号中间)中间的单引号。