Javascript ADO记录集打开方法不起作用。参数化查询

时间:2015-06-17 17:25:27

标签: javascript html sql ms-access ado

我正在创建一个网页,并有一些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

进行参数化

1 个答案:

答案 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 + "'";