單文件 .aspx 完整代碼
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
void Page_Load()
{
string dbPath = @"database/data.mdb"; // 相對路徑
string connStr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath(dbPath) + ";";
string sql = "CREATE TABLE IEB_webs (ID COUNTER PRIMARY KEY, title VARCHAR(255) DEFAULT NULL)";
using (OleDbConnection conn = new OleDbConnection(connStr))
using (OleDbCommand cmd = new OleDbCommand(sql, conn))
{
conn.Open();
cmd.ExecuteNonQuery();
Response.Write("數據表建立完成!");
}
}
</script>
<html>
<head></head>
<body>
<form method="post" runat="server">
<!-- 頁面內容 -->
</form>
</body>
</html>
關鍵點
- 提供者:`Microsoft.Jet.OLEDB.4.0` 適用 `.mdb` (Access 2003);`.accdb` (Access 2007+) 需 `Microsoft.ACE.OLEDB.12.0` 並安裝 Access Database Engine。
- `Server.MapPath` 將相對路徑轉為服務器物理路徑。
- `using` 確保連接、命令及時釋放。
- 權限:應用程序池身份需對 `.mdb` 文件及其所在目錄有 **讀寫權限**(特別是 `NETWORK SERVICE`)。
連接字符串變體
' 有密碼的 .mdb
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data.mdb;Jet OLEDB:Database Password=123;
' .accdb (Access 2007+)
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\data.accdb;Persist Security Info=False;