javascript連接access資料庫
作者:great_domino 的 Blog
文件構成:
Access資料庫名為 MyData.Mdb, 裡面建了一個名為count的表,表由兩個
欄位組成: ID和COUNT,表裡有一條數據: (''''count'''',''''100'''')。
文本文件名為 count.txt,裡面隨便寫入一個數字。
靜態頁面名為Cnt.htm。
以上3個文件都放在同一目錄下。
由於採用Access資料庫,而它採用非標准sql語法,所以要注意在表名
和欄位名上需要加方括弧: []
下面是頁面里的代碼:
其中getCountFromDB方法是對Access資料庫進行操作,getCountFromTxt
方法是對txt純文本進行操作,這兩個方法都在本地執行通過。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function getCountFromDB() {
//以當前頁面文件為基礎,找到文件所在的絕對路徑。
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "MyData.mdb";
//去掉字元串中最前面的"files://"這8個字元。
path = path.substring(8);
var updateCnt = 0;
//生成查詢和更新用的sql語句。
var sqlSelCnt = "SELECT COUNT FROM [COUNT] WHERE ID = ''''count''''";
var sqlUpdCnt = "UPDATE [COUNT] SET [COUNT] = ''''";
//建立連接,並生成相關字元串 www.zhangpeng.com.cn。
var con = new ActiveXObject("ADODB.Connection");
con.Provider = "Microsoft.Jet.OLEDB.4.0";
con.ConnectionString = "Data Source=" + path;
con.open;
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(sqlSelCnt, con);
while (!rs.eof) {
var cnt = rs.Fields("COUNT");
document.write(cnt);
//將取得結果加1後更新資料庫。
updateCnt = cnt * 1 + 1;
rs.moveNext;
}
rs.close();
rs = null;
sqlUpdCnt = sqlUpdCnt + updateCnt + "''''";
con.execute(sqlUpdCnt);
con.close();
con = null;
}
function getCountFromTxt() {
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "count.txt";
path = path.substring(8);
var nextCnt = 0;
var fso, f1, ts, s;
//以只讀方式打開文本文件。
var ForReading = 1;
//以讀寫方式打開文本文件。
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile(path);
ts = f1.OpenAsTextStream(ForReading, true);
s = ts.ReadLine();
nextCnt = eval(s) + 1;
document.write("now count is :" + s);
ts.Close();
ts = f1.OpenAsTextStream(ForWriting, true);
ts.WriteLine(nextCnt);
ts.close();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
getCountFromTxt();
//-->
</SCRIPT>
</BODY>
</HTML>
② html頁面中如何連接access資料庫
你必須在DW裡面把網頁存為ASP或者PHP才可以採用動態資料庫更新數據 要把站點修改一下 然後
在dreamwave用代碼或者在面板裡面的資料庫創建連接
ASP代碼是<%%
dim conn
dim db
db="admin/database/Enterprise.mdb" //你的文件路徑下面的資料庫,具體你自己替換
set conn=Server.CreateObject("adodb.connection")
conn.provider="Microsoft.jet.oledb.4.0;Data source=" & Server.MapPath(db)
conn.open
sub CloseConn()
conn.close
set conn=nothing
end sub
%>%>
創建好連接後創建記錄集和SQL COMMAND對象就可以連接上了
<%
dim rs,sql
set rs=server.CreateObject("adodb.recordset")
sql="select * from wo where 表格裡面的欄位='"&indexAD_ID&"' "//我是你的資料庫里德表格名稱 自己在資料庫裡面建好
rs.open sql,conn,1,1
%>
然後你只要在那個位置輸入<%indexAD_id%>就可以了 只要連接資料庫成功之後 其他就很方便 不過這要有點ADO基礎 你好好找找資料試驗下吧
③ asp網頁如何連接access資料庫
這個不就是連接資料庫嗎 還用什麼視頻?
給你個規則以後按這個弄就好了 我自己都是這么做的 沒有問題的
<%
dim conn,mdbfile
mdbfile=server.mappath("資料庫名稱.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver
(*.mdb)};uid=admin;pwd=資料庫密碼;dbq="&mdbfile
%>
恩恩 連表是吧 你要啟動SQL語句的
sql="select * from 表名"
conn.execute(sql)
這樣就可以了
④ 動態網頁連資料庫access的詳細過程
常用資料庫語句
1.SELECT 語句:命令資料庫引擎從資料庫里返回信息,作為一組記錄。
2.INSERT INTO 語句:添加一個或多個記錄至一個表。
3.UPDATE 語句:創建更新查詢來改變基於特定準則的指定表中的欄位值。
4.DELETE 語句:創建一個刪除查詢把記錄從 FROM 子句列出並符合 WHERE 子句的一個或更多的表中清除。
5.EXECUTE 語句:用於激活 PROCEDURE(過程)
用 ASP 來做一個自己的通訊錄練練手吧……
一、建立資料庫:
用 Microsoft Access 建立一個名為 data.mdb 的空資料庫,使用設計器創建一個新表。輸入以下幾個欄位:
欄位名稱數據類型說明其它
ID自動編號數據標識欄位大小:長整型新值:遞增索引:有(無重復)
username文本姓名預設值
usermail文本E-mail預設值
view數字查看次數欄位大小:長整型默認值:0索引:無
indate時間日期加入時間預設值
保存為 data.mdb 文件,為了便於說明,只是做了一個比較簡單的庫。
二、連接資料庫
方法1:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")
方法2:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data.mdb")
注意:一個頁面中,只要連接一次就可以了,資料庫使用完後要及時關閉連接。
conn.Close
Set conn = Nothing
三、添加新記錄到資料庫
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")
username = "風雲突變"
usermail = "[email protected]"
indate = Now()
sql = "insert into data (username,usermail,indata) values('"&username&"','"&usermail&"','"&indate&"')"
conn.Execute(sql)
conn.Close
Set conn = Nothing
說明:建立資料庫連接;通過表單獲取姓名、E-mail 字元串,Now()獲取當前時間日期;使用 insert into 語句添加新記錄;conn.Execute 來執行;最後關閉。
四、選擇資料庫里的記錄
1.選擇所有記錄的欄位(按記錄倒序排序):sql = "select * from data order by ID desc"
2.選擇所有記錄的姓名和E-mail欄位(不排序):sql = "select username,usermail from data"
3.選擇姓名為「風雲突變」的所有記錄:sql = "select * from data where username='"風雲突變"'"
4.選擇使用 163 信箱的所有記錄(按查看次數排序):sql = "select * from data where usermail like '%"@163.com"%' order by view desc"
5.選擇最新的10個記錄:sql = "select top 10 * from data order by ID desc"
SQL 語句已經知道了,不過在Web應用時,還得創建一個 RecordSet 對象得到記錄集,才能把從資料庫里取出的值應用在網頁上,如果現在將所有的記錄顯示在網頁上就這樣:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")
sql = "select * from data"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,1
Do While Not rs.Eof
Response.Write "<p>姓名:"& rs("username") &"E-mail:"& rs("usermail") &"查看:"& rs("view") &"次"& rs("indate") &"加入</p>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
說明:建立資料庫連接;創建 rs 得到記錄集;循環顯示記錄,rs.Eof 表示記錄末,rs.MoveNext 表示移到下一個記錄;最後關閉。
五、修改(更新)資料庫記錄
修改記錄的E-mail:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")
ID = 1
usermail = "[email protected]"
sql = "update data set usermail='"&usermail&"' where ID="&CInt(ID)
conn.Execute(sql)
conn.Close
Set conn = Nothing
說明:建立資料庫連接;獲取記錄ID、新 E-mail 字元串;使用 update 語句修改記錄;conn.Execute 來執行;最後關閉。
如果使記錄的查看值加1,則:sql = "update data set view=view+1 where ID="&CInt(ID)
六、刪除資料庫記錄
刪除某一條記錄:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("data.mdb")
ID = 1
sql = "delete from data where ID="&CInt(ID)
conn.Execute(sql)
conn.Close
Set conn = Nothing
說明:建立資料庫連接;獲取記錄ID;使用 delete 語句刪除記錄;conn.Execute 來執行;最後關閉。
刪除多條記錄為:sql = "delete from data where ID in (ID1,ID2,ID3)"
刪除所有記錄為:sql = "delete from data"
⑤ 網頁如何連接到ACCESS 資料庫
有五種方法:
第一種 - 這種方法用在ACCESS中最多
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _
& Server.MapPath("aspfree.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
第二種-這種方法用在SQL SERVER中多
strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1;" _
&"UID=LoginID;Password=;DATABASE=Database_Name"
set conn = server.createobject("adodb.connection")
conn.open strconn
第三種
strconn="Driver={Microsoft Access Driver(*.mdb)};" _
&"DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=" _
&"f:\Inetpub\wwwroot\somedir;uid=LoginID;" _
&"pwd=Password;DriverId=25;FIL=MSAccess;"
set conn = server.createobject("adodb.connection")
conn.open strconn
第四種運用系統數據源
The following uses a Data Source Name: Example
set conn = server.createobject("adodb.connection")
conn.open "Example"
第五種運用ODBC數據源,前提是你必須在控制面板的ODBC中設置數據源
set rs = server.createobject("adodb.recordset")
rs.open "tblname", "DSNName", 3, 3 第一種 - 這種方法用在ACCESS中最多
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _
& Server.MapPath("aspfree.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
自己試試吧!!!
⑥ 怎麼樣用網頁訪問Access資料庫,越簡單越好
asp的。
dim conn,rs,sql,i,connstr
connstr="dbq=" & server.MapPath("mdb/bookshop.mdb")
& ";driver={microsoft access driver (*.mdb)};"
'前兩句為一行代碼
set conn=server.CreateObject("adodb.connection")
conn.Open connstr
set rs=server.CreateObject("adodb.recordset")
sql="select * from book order by id desc"
rs.Open sql,conn,1,1
'rs.MovePrevious
⑦ 如何讓網頁表單提交到ACCESS資料庫
用form提交表單:
在你的xx.action
裡面就可以直接拿到你頁面的參數了,這樣在後台鏈接一下你的
access資料庫
,這樣就可以存入了
⑧ 網頁鏈接ACCESS資料庫方法
給你一段代碼,連接一個Access資料庫,添加、查詢、修改、刪除,在一個頁面都搞定。
<%
'作用:
Sub Aerlt_Redirect(msg,url)
Dim t
t = "<script>"
t = t & "alert('" & msg & "');"
t = t & "location.href='" & url & "';"
t = t & "</script>"
Response.write t
End Sub
'作用:
Dim sql,conn,rs,connstr,dbpath
Set conn=Server.CreateObject("adodb.connection")
Set rs=Server.CreateObject("adodb.recordset")
dbpath="./adoAll.mdb"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mapPath(dbpath)
conn.connectionstring=connstr
%>
<html>
<head>
<title>ado全功能測試</title>
<script type="text/javascript">
<!--
function checkForm()
{
var u_name=document.f.u_name.value;
var u_pass1=document.f.u_pass1.value;
var u_pass2=document.f.u_pass2.value;
var u_email=document.f.u_email.value;
var u_birth=document.f.u_birth.value;
if (u_name.length<3)
{
alert("用戶名不得少於3個字母!");
document.f.u_name.focus();
return false;
}
//...
return true;
}
function myDo(f,act)
{
var frm=eval("document." + f);
frm.act.value=act;
frm.submit();
}
//-->
</script>
</head>
<body>
<%
Dim act
act=Trim(request.Form("act"))
Select Case act
Case "new"
u_name=Trim(Request.Form("u_name"))
u_pass1=Trim(Request.Form("u_pass1"))
u_pass2=Trim(Request.Form("u_pass2"))
u_email=Trim(Request.Form("u_email"))
u_birth=Trim(Request.Form("u_birth"))
u_sex=Trim(Request.Form("u_sex"))
'作用:
If Len(u_name)<3 Then
Response.write "用戶名不得少於3個字母!"
Response.End
End If
'....
'作用:
'sql="insert into [member](u_name,u_pass,...) values('" & u_name & "','" & u_pass & "','..."
'conn.open
'conn.execute sql
sql="select top 1 * from [member]"
conn.open
rs.open sql,conn,1,3
rs.Addnew
rs("u_name")=u_name
rs("u_pass")=u_pass1
rs("u_email")=u_email
rs("u_birth")=u_birth
rs("u_sex")=u_sex
rs.update
rs.close
conn.close
Call Aerlt_Redirect("添加成功!","adoAll.asp")
Case "mdf"
u_id=Trim(Request.Form("u_id"))
u_name=Trim(Request.Form("u_name"))
u_pass=Trim(Request.Form("u_pass"))
u_email=Trim(Request.Form("u_email"))
u_birth=Trim(Request.Form("u_birth"))
u_sex=Trim(Request.Form("u_sex"))
'作用:
If Len(u_name)<3 Then
Response.write "用戶名不得少於3個字母!"
Response.End
End If
If Not IsNumeric(u_id) Then
Response.write "u_id格式錯誤"
Response.End
End If
'....
'作用:
sql="select top 1 * from [member] where u_id=" & u_id
conn.open
rs.open sql,conn,1,3
'If Not rs.eof Then rs.delete
rs("u_name")=u_name
rs("u_pass")=u_pass
rs("u_email")=u_email
rs("u_birth")=u_birth
rs("u_sex")=u_sex
rs.update
rs.close
conn.close
Call Aerlt_Redirect("修改成功!","adoAll.asp")
'作用:
Case "del"
u_id=Trim(Request.Form("u_id"))
sql="delete * from [member] where u_id=?"
conn.open
Set c=Server.CreateObject("adodb.command")
with c
Set .ActiveConnection=conn
.CommandText=sql
.CommandType=1
.Parameters.Append .CreateParameter("u_id",3,1,4,u_id)
.Execute
Set .ActiveConnection=Nothing
End with
conn.close
Call Aerlt_Redirect("刪除成功!","adoAll.asp")
'作用:
Case "search"
u_name=Trim(Request.Form("u_name"))
u_sex=Trim(Request.Form("u_sex"))
'...
If u_name<>"" Then
ext=" and [u_name]='" & u_name & "'"
End If
If u_sex<>"" Then
ext=ext & " and [u_sex]=" & u_sex
End If
sql="select * from [member] where 1=1 " & ext
sql=sql & " order by u_id "
session("sql")=sql
Case Else
If session("sql")="" Then
sql="select * from [member] order by u_id "
session("sql")=sql
End If
End Select
%>
<form name="f" method="post" action="?" onsubmit="return checkForm()">
<input type="hidden" name="act" value="new">
<table>
<tr>
<td>注冊用戶名:</td>
<td><input type="text" name="u_name" /></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="u_pass1" /></td>
</tr>
<tr>
<td>確認密碼:</td>
<td><input type="password" name="u_pass2" /></td>
</tr>
<tr>
<td>郵箱:</td>
<td><input type="text" name="u_email" /></td>
</tr>
<tr>
<td>性別:</td>
<td><input type="radio" name="u_sex" value="1" checked />男
<input type="radio" name="u_sex" value="0" />女</td>
</tr>
<tr>
<td>生日:</td>
<td><input type="text" name="u_birth" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="注冊" /></td>
</tr>
</table>
</form>
<form method="post" action="?">
<input type="hidden" name="act" value="search">
<table>
<tr>
<td>用戶名:<input type="text" name="u_name" size="10" /></td>
<td>性別:<select name="u_sex">
<option value="" selected="selected">選擇性別</option>
<option value="0">女</option>
<option value="1">男</option>
</select></td>
<td><input type="submit" value="查詢" /></td>
</tr>
</table>
</form>
<%
If session("sql")="" Then Response.End
conn.open
rs.open session("sql"),conn,1,1
If Not rs.eof Then
%>
<table>
<tr>
<td>ID</td>
<td>用戶名</td>
<td>密碼</td>
<td>郵箱</td>
<td>性別</td>
<td>出生日期</td>
<td>修改</td>
<td>刪除</td>
</tr>
<%
Dim iCnt
Do While Not rs.Eof
iCnt=iCnt+1
%>
<form method="post" action="?" name="f<%=iCnt%>">
<input type="hidden" name="act" value="">
<input type="hidden" name="u_id" value="<%=rs("u_id")%>">
<tr>
<td><%=rs("u_id")%></td>
<td><input type="text" name="u_name" value="<%=rs("u_name")%>" /></td>
<td><input type="text" name="u_pass" value="<%=rs("u_pass")%>" /></td>
<td><input type="text" name="u_email" value="<%=rs("u_email")%>" /></td>
<td><select name="u_sex">
<option value="0" <%If rs("u_sex")="0" Then Response.write " selected"%>>女</option>
<option value="1" <%If rs("u_sex")="1" Then Response.write " selected"%>>男</option>
</td>
<td><input type="text" name="u_birth" value="<%=rs("u_birth")%>" /></td>
<td><input type="button" value="修改" onclick="myDo('f<%=iCnt%>','mdf')" /></td>
<td><input type="button" value="刪除" onclick="myDo('f<%=iCnt%>','del')" /></td>
</tr>
</form>
<%
rs.MoveNext
Loop
%>
</table>
<%
End If
rs.close : conn.close
%>
</body>
</html>