我正在创建一个网页,并有一些javascript代码将一些信息从网页插入MS访问数据库。 我正在使用ADO连接和记录集,但我遇到了open方法的问题。
这是我遇到问题的代码片段
var name =document.StatusReports.empname.value;
var query = "Select * From reportForm Where EmployeeName =" + name;
alert(query);
if(adoRS.Open(query, adoConn, 1, 3));
名称只是一个保存文本框值的变量。 (这个有效)
如果我使用alert(查询),一切都很好地显示:Select * From reportForm Where EmployeeName = kevin
好像连接工作正常。
但是,如果我尝试打开与该查询的连接,我会收到此错误:
SCRIPT3600: No value given for one or more required parameters.
好像它没有认识到连接。
注意:IT不适用于连接。例如,如果我硬编码值:
var query = "Select * From reportForm Where EmployeeName = kevin";
但这当然不是目的。
更新:我认为问题是查询没有参数化。我记得在Java中这件事发生在我身上,但我参与了查询,我会完成。 不确定如何使用javascript
进行参数化答案 0 :(得分:1)
以下查询将在Access中产生错误,因为它正在尝试比较两个字段名称:“EmployeeName”和“kevin”:
Select * From reportForm Where EmployeeName = kevin
以下查询应该不产生错误,因为它将“EmployeeName”与“kevin”的字符串值进行比较:
Select * From reportForm Where EmployeeName = 'kevin'
将搜索字符串name
放在引号中,如下所示:
var query = "Select * From reportForm Where EmployeeName ='" + name + "'";