asp 中 错误的参数个数或无效的参数属性值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp 中 错误的参数个数或无效的参数属性值问题相关的知识,希望对你有一定的参考价值。

部分代码:
for(i=0;i<pnumber;i++)
if(idcard==pidcard[i])
xx=0;
continue;

s="select * from 附加客户信息 where 附加身份证号='"+pidcard[i]+"' and 时间='"+sj+"'";
rs=cn.Execute();
if(rs.EOF)
sql="insert into 附加客户信息 values('"+pidcard[i]+"','"+idcard+"','"+pname[i]+"','"+sj+"')";
cn.Execute(sql);
else
%>
<script language="javascript">
alert("一个人不能在同一时间预定机票!");
window.location="../index1.asp";
</script>
<%

rs.Close();


这是个循环,需要在每次循环中查询并判断是否插入,运行后结果是
错误类型:
Microsoft JScript 运行时错误 (0x800A01C2)
错误的参数个数或无效的参数属性值
也就是,rs=cn.Execute();这行出错,请问如何解决,急啊~~~~~~
我已经include了一个链接数据库的文件,没有贴上来,且定义了用JAVASCRIPT
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>链接数据库</title>
<%
var cn=Server.CreateObject("ADODB.Connection");
cn.Open("driver=SQL Server;database=tickets;server=(local);uid=sa;pwd=");
rs=Server.CreateObject("ADODB.Recordset");
rs0=Server.CreateObject("ADODB.Recordset");
rs1=Server.CreateObject("ADODB.Recordset");
rs2=Server.CreateObject("ADODB.Recordset");
rs3=Server.CreateObject("ADODB.Recordset");
rs4=Server.CreateObject("ADODB.Recordset");
%>
</head>

<body>
</body>
</html>

参考技术A 如果你没定义asp是用javascript的话,默认是用vbscript,所以没有的写法。
如果你定义了是用javascript
另外,建议变量不要用+号修饰,而用&

<%
for(i=0;i<pnumber;i++)
if(idcard==pidcard[i])
xx=0;
continue;

s="select * from 附加客户信息 where 附加身份证号='"&pidcard[i]&"' and 时间='"&sj&"'";
sql="insert into 附加客户信息 values('"&pidcard[i]&"','"&idcard&"','"&pname[i]&"','"&sj&"')";
set rs=cn.Execute(sql);

else
%>
<script language="JavaScript">
alert("一个人不能在同一时间预定机票!");
window.location="../index1.asp";
</script>
<%

rs.Close();


另外,你那判 断也有错误,如果不打开记录集的话,也就是没有set rs=server.createobject("adodb.recordset"),而直接用cn.execute(sql)是无法判断符合该条件的记录是否存在的,而是不执行那个sql。
所以,你要判 断的话,最好是把记录集打开。

替换编译错误:参数数量错误或属性分配无效

我在编译代码时遇到了问题

Dim OriginalText As String
Dim CorrectedText As String

OriginalText = Range("A5").Value

CorrectedText = Replace(OriginalText, "a", "o")

Range("A5").Offset(, 1).Value = CorrectedText

在Cell A5中,我有Micrasaft这个词,我想用微软代替。

我得到'编译错误:错误的参数数量或无效的属性赋值'。


我知道为什么,因为我调用了我的Sub Replace,不知道如果你用一个公式命名你的sub,它就不会编译

答案

尝试以下方式:

Dim OriginalText As String
Dim CorrectedText As String

OriginalText = Range("A5").Value

CorrectedText = VBA.Strings.Replace(OriginalText, "a", "o")

Range("A5").Offset(, 1).Value = CorrectedText

以上是关于asp 中 错误的参数个数或无效的参数属性值问题的主要内容,如果未能解决你的问题,请参考以下文章

VB中怎么获得系统日期与时间

Excel返回#NUM!错误值原因及解决方法

asp.net:无效的回发或回调参数

无效的回发或回调参数/无效的视图状态

替换编译错误:参数数量错误或属性分配无效

ASP 错误 没有为一个或多个必需参数指定值