日期:2014-05-16  浏览次数:21136 次

asp标准表达式中数据类型不匹配?asp的符号到底怎么用?
错误:标准表达式中数据类型不匹配。
我感觉像是数据类型定义错误造成的原因,可是我对asp的双引号,单引号,连接号不会用
图例1:

原代码
<%
Dim Recordset1__MMColParam
Recordset1__MMColParam = "5"
If (Request("MM_EmptyValue") <> "") Then 
  Recordset1__MMColParam = Request("MM_EmptyValue")
End If
%>
<%
Dim Recordset1__mj
Recordset1__mj = "1"
If (Request("cs")<> "") Then 
  Recordset1__mj = Request("cs")     
End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_rs_STRING

Recordset1.Source = "SELECT *  FROM hy_all  WHERE h_t_id = " + Replace(Recordset1__MMColParam, "'", "''") + " and k_grade= " + Replace(Recordset1__mj, "'", "''") + ""
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>

---------------------------------
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
/yychenxi/cvvv_1xin.asp, 第 28 行

浏览器类型:
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1

网页:
GET /yychenxi/cvvv_1xin.asp
---------------------------------
现在是正确了,可是我需要把数据库里的文本改成数字。(可我总有一天需要筛选文本,到那时我怎么办?)

------解决方案--------------------
连接字符串用 & 而不是 +
Recordset1.Source = "SELECT *  FROM hy_all  WHERE h_t_id = " & Replace(Recordset1__MMColParam, "'", "''") & " and k_grade= " & Replace(Recordset1__mj, "'", "''") & ""
------解决方案--------------------
字符型的字段要用两边要用单引号, 数字类型字段则不用

Recordset1.Source = "SELECT *  FROM hy_all  WHERE h_t_id = " & Recordset1__MMColParam & " and k_grade= ‘" & Replace(Recordset1__mj, "'", "''") & "’"
------解决方案--------------------
引用:
错误:标准表达式中数据类型不匹配。
我感觉像是数据类型定义错误造成的原因,可是我对asp的双引号,单引号,连接号不会用
图例1:

原代码
<%
Dim Recordset1__MMColParam
Recordset1__MMColParam = "5"
If (Request("MM_EmptyValue") <> "") Then 
  Recordset1__MMColParam = Request("MM_EmptyValue")
End If
%>
<%
Dim Recordset1__mj
Recordset1__mj = "1"
If (Request("cs")<> "") Then 
  Recordset1__mj = Request("cs")     
End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject(