xiyou大大,我的数据库是sql2008的,能帮我看看是不是这代码出问题了?
<script language="c#" runat="server">
private bool IsStr(string str)
{
if(string.IsNullOrEmpty(str)){return false;}
string str1="0123456789abcdefghijklmnopqrstuvwxyz_";
string str2=str.ToLower();
for(int i=0;i<str2.Length;i++)
{
if(str1.IndexOf(str2)==-1)
{
return false;
}
}
return true;
}
string Sql_Format(string str,bool isFuzzyQuery)
{
if(string.IsNullOrEmpty(str)){return string.Empty;}
str=Server.UrlDecode(Server.UrlEncode(str).Replace("%00",""));
str=str.Replace("'","''");
str=str.Replace("\"","\"");
if(isFuzzyQuery)
{
str=str.Replace("[]","[[]]");
str=str.Replace("[","[[]");
str=str.Replace("]","[]]");
str=str.Replace("_","[_]");
str=str.Replace("%","[%]");
str=str.Replace("^","[^]");
}
return str;
}
protected string SubStr(string Title,int Title_Num,bool HtmlEncode)
{
if(Title_Num==0)
{
return "";
}
else
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("[\u4e00-\u9fa5]+", System.Text.RegularExpressions.RegexOptions.Compiled);
char[] stringChar = Title.ToCharArray();
StringBuilder sb = new StringBuilder();
int nLength = 0;
for(int i = 0; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar).ToString()))
{
nLength += 2;
}
else
{
nLength = nLength + 1;
}
if(nLength <= Title_Num)
{
sb.Append(stringChar);
}
else
{
break;
}
}
if(sb.ToString() != Title)
{
sb.Append("...");
}
if(HtmlEncode)
{
return Server.HtmlEncode(sb.ToString());
}
else
{
return sb.ToString();
} }
}
</script>
<ul class="allsearch">
<%
string sql_condition="";
string table="article"; //搜索文章表
string kw=Request.QueryString["kw"];
if(string.IsNullOrEmpty(kw))
{
Response.Write("<li class='noitem'>对不起,没有您要找的记录。</li>");
}
else
{
kw=Sql_Format(kw.Trim(),true);
kw=SubStr(kw,30,true).Replace("...","");
sql_condition+=" and title like '%"+kw+"%'";
string sql="select title,thedate,pa_introduct,titlepic,site_id,static_dir,static_file,lanmu_id,sublanmu_id,id,zdy_url,permissions,html,source_id from "+table+" where checked=1"+sql_condition+" order by thedate desc";
string countsql="select count(id) as co from "+table+" where checked=1"+sql_condition;
string title,titpic,con,rkw,url;
DataTable dt;
dt=Get_Data(sql,countsql,10);
DataRow dr;
if(dt.Rows.Count>0)
{
for(int i=0;i<dt.Rows.Count;i++)
{
dr=dt.Rows; //说明:给dr赋值
rkw="<span class='keyword'>"+kw+"</span>";
title=dr["title"].ToString().Replace(kw,rkw);
url=Detail_Url(dr,table);
if(dr["titlepic"].ToString()!="")
{
titpic="<a href='"+url+"' target='_blank'><img src='"+dr["titlepic"].ToString()+"'></a>";
}
else
{
titpic="";
}
con=SubStr(dr["pa_introduct"].ToString(),150,true).Replace(kw,rkw);
%>
<li><span class="title"><a href="<%=url%>" target="_blank"><%=title%></a></span>
<span class="con"><%=titpic%><%=con%></span>
<span class="info">发布时间:<%=((DateTime)dr["thedate"]).ToString("yyyy-MM-dd")%></span>
</li>
<%
}
}
else
{
Response.Write("<li class='noitem'>对不起,没有查询到匹配的记录,您可以更换关键词重新搜索。</li>");
}
}
%>
</ul>
<script type="text/javascript">
var kw="<%=Server.HtmlEncode(Request.QueryString["kw"])%>";
if(kw!="" && Id("s_kw")!=null)
{
Id("s_kw").value=kw;
}
</script>