asp的数据库查询出现问题,弄了一天也弄不出来 在线
小弟初学者
源代码:
<% Option Explicit %>
<%Response.Buffer=True%>
<html>
<head>
<title> 查询 </title>
</head>
<body>
<%
If session( "username ")= " " Then
response.redirect "list1.asp "
End if
%>
<h2 align= "center "> 查询 </h2>
<center>
<form method= "post " action= " ">
<table border= "0 " width= "90% " bgcolor= "#E6E6E6 ">
<tr>
<td> 号码关键字: </td> <td> <input type= "text " name= "号码 " size= "20 " > ** </td>
</tr> <tr>
<td> 用户关键字: </td> <td> <input type= "text " name= "用户 " size= "20 " > ** </td>
</tr> <tr>
<td> 地址关键字: </td> <td> <input type= "text " name= "地址 " size= "20 " > ** </td>
</tr> <tr>
<td> </td> <td> <input type= "submit " value= " 确 定 "> </td>
</tr>
</table>
</form>
<%
Dim db
Set db=Server.CreateObject( "ADODB.Connection ")
db.Open "Database=TOLLDB_3;uid=sa; pwd=12; Driver={SQL SERVER};Server=localhost "
'如果没有输入姓名关键字就不执行下列语句
If Trim(Request( "号码 ")) <> " " or Trim(Request( "用户 ")) <> " " or Trim(Request( "地址 ")) <> " " Then
'建立Recordset对象
Dim rs,strSql
Set rs=Server.CreateObject( "ADODB.Recordset ")
'以姓名为关键字查找
strSql= "Select * From 用户资料 Where 号码 Like ' " & Trim(Request( "号码 ")) & "% ' and 用户 Like '% " & Trim(Request( "用户 ")) & "% ' and 地址 Like '% " & Trim(Request( "地址 ")) & "% ' "
rs.Open strSql,db,1 '要应用Count属性,要用键盘指针
If rs.RecordCount <=0 Then
Response.Write "对不起,没有找到信息 "
Else
Response.Write "共找到 " & rs.RecordCount & "条记录 "
%>
<table border= "0 " width= "90% ">
<tr bgcolor= "#B7B7B7 " align= "center ">
<td width=10%> 号码 </td>
<td width=15%> 用户 </td>
<td width=15%> 地址 </td>
<td width=10%> 证件号码 </td>
<td width=10%> 产品名称 </td>
<td width=10%> 开通日期 </td>
<td width=10%> 联系人 </td>
<td width=10%> 联系信息 </td>
</tr>
<%
Do While Not rs.Eof
Response.Write " <tr bgcolor= '#E6E6E6 ' align= 'center '> "
Response.Write " <td> " & rs( "号码 ") & " </td> "
Response.Write " <td> " & rs( "用户 ") & " </td> "
Response.Write " <td> " & rs( "地址 ") & " </td> "
Response.Write " <td> " & rs( "证件号码 ") & " </td> "
Response.Write " <td> " & rs( "产品名称 ") & " </td> "
Response.Write " <td> " & rs( "开通日期 ") & " </td> "
Response.Write " <td> " & rs( "联系人 ") & " </td> "
Response.Write " <td> " & rs( "联系信息 ") & " </td> "
Response.Write " </tr> "
rs.MoveNext
Loop
End If
end if
%>
</center>
</body>
</html>
windows 2000 连接 sql 2000
表 用户资料(140万数据左右)
字段 号码(聚集索引)、 用户(索引)、 地址(索引)、 证件号码 、产品名称、 开通日期 、联系人、 联系信息 ,类型均为为 char
我输入号码(例如2865964)进行查询时,有时可以成功,但是有时就会出现:
“Microsoft VBScript 编译器错误 错误 '800a03f6 '
缺少 'End '
/iisHelp/common/500-100.asp,行242
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21 '
ODBC 驱动程序不支持所需的属性。
/www/asptemp/chapter9/address/test.asp,行44 ”
换成access数据库也不行。
但是连接另一个数据库(6万条数据)就可以了。
求大虾帮忙,谢谢!
[解决办法]
字段名最好不要用中文,容易出错.而且,你44行是哪里,也要标出来阿
[解决办法]
rs.Open strSql,db,1,1 '要应用Count属性,要用键盘指针
[解决办法]
在44行前面把strSql输出一下
response.write "sql语句测试: "&strSQL& " <br> "
然后把值贴出来
[解决办法]
jingxiaoping 少个%根本不会出错啊。。。这就是搜索要求罢了~``大不了前面不通配,但不可能出错的~
[解决办法]
sql= "select * from [Users_Info] "
if 号码 <> " " then
sql=sql& "where tel like '%% ' "
elseif 用户 <> " " then
sql=sql& "where user like '%% ' "
elseif 地址 <> " " then
sql=sql& "where address like '%% ' "
end if
response.write(sql)
response.end()