我使用JavaScript while
循环从Access数据库中获取数据:
<html>
<head>
<title>test</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function fnadd()
{
var a=[];
var con=new ActiveXObject("ADODB.Connection");
var rs=new ActiveXObject("ADODB.Recordset");
con.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:test.mdb;Persist Security Info=False");
rs.open("select * from test",con,1,3);
var n=rs.RecordCount;
while(!rs.eof)
{
document.write(rs(1).value);
rs.MoveNext();
}
}
</script>
</head>
<body>
Name: <input type="text" id="textbox_1">
<input type="button" value="view" onclick="fnadd();"/>
</body>
</html>
是否可以将这些数据保存在文本框中?
您的示例显示了如何列出行。如果要向数据库添加值,可以使用ADODB命令,如下所示:
function fnadd()
{
var con=new ActiveXObject("ADODB.Connection");
var rs=new ActiveXObject("ADODB.Recordset");
con.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:test.mdb;Persist Security Info=False");
var textbox = document.getElementById("textbox_1");
var commandText = "INSERT INTO test values ('" + textbox.value + "')";
var result = con.execute(commandText);
//check result here
con.close();
}
我假设你的桌子有1列。根据您的表结构更改sql命令。
如果这是您的实际代码,那么我必须这样说
在javascript中使用连接字符串是非常糟糕的主意
如果你想在column
框中显示1 input
中的所有值为csv
,请使用string concatination
<script>
function fnadd()
{
var a=[];
var con=new ActiveXObject("ADODB.Connection");
var rs=new ActiveXObject("ADODB.Recordset");
con.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:test.mdb;Persist Security Info=False");
rs.open("select * from test",con,1,3);
var n=rs.RecordCount;
var myStr = "";
while(!rs.eof)
{
//document.write(rs(1).value);
myStr =myStr+rs(1).value+ ", ";
rs.MoveNext();
}
//You have to remove last comma from string though before assigning to input box
document.getElementById("textbox_1").value = myStr;
}
</script>