C# 讀取Access資料庫及php讀取伺服器上的Access資料庫
Access資料庫他是不能遠端訪問的,也就是說實際上它是單機的一個數據庫,那麼如果非要遠端訪問它那麼就需要php作為中間語言去操作Access資料庫。
我想現實使用C#在本地訪問Access資料庫。要想訪問Access資料庫,我們首先得自己建立一個數據庫檔案:在開始選單中找到 Microsoft office 下的 Microsoft office Access 如圖:
進入軟體後你會看到如下介面:
先點選 空白資料庫 然後在右邊步驟二中 選擇資料庫檔案儲存的地址 然後點建立。這樣就建立好了一個數據庫檔案了,至於在裡面新增欄位建立表,這個步驟其實和我們使用MySQL的步驟差不多的沒什麼區別。這部分略過。儲存好自己建立的資料庫檔案。
接著我們開啟VS2017去讀取剛剛我們自己建立的資料庫檔案,建立一個WinForm程式,在裡邊拖放一個Button和一個DataGridView 如圖:
雙擊按鈕進入按鈕點選事件的方法 編寫以下程式碼:(注意:需引入 using System.Data.OleDb;名稱空間 )
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\MyDB.mdb"); OleDbCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from Ren"; conn.Open(); OleDbDataReader dr = cmd.ExecuteReader(); DataTable dt = new DataTable(); if (dr.HasRows) { for (int i = 0; i < dr.FieldCount; i++) { dt.Columns.Add(dr.GetName(i)); } dt.Rows.Clear(); } while (dr.Read()) { DataRow row = dt.NewRow(); for (int i = 0; i < dr.FieldCount; i++) { row[i] = dr[i]; } dt.Rows.Add(row); } cmd.Dispose(); conn.Close(); dataGridView1.DataSource = dt;
然後找到 檢視 - 伺服器資源管理器 如圖:
右鍵 資料庫連線 - 新增連線 - 資料庫檔名 選擇你的資料庫檔案存放的地方:如圖
其他不用改 因為我們的資料庫沒有設定密碼 所以預設就行 然後點選測試連線 看看有不有問題,如果沒有問題就點選確定就行了。接著執行裡的程式 點選按鈕你就看看到你的資料庫裡面的資訊被讀取顯示出了來。如圖:
到這裡使用C#讀取本地的Access資料庫檔案就完了。接著我們看看如何遠端讀取Access資料庫檔案。
剛剛我們講了Access是不能遠端訪問的,如果我們需要遠端訪問的話那麼就需要 伺服器 Php 這樣就行了 因為php是在伺服器上執行的 我們把Access資料庫也放在伺服器上 用php去訪問資料庫 也就相當於在本地訪問一樣了。這樣就解決了遠端訪問Access資料庫的問題了。下邊是php指令碼訪問Access資料庫的程式碼 包含了基本的增刪改查功能:
//---連結資料庫並且讀取所有資訊
<?php
//讀取mdb資料庫例程
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./MyDB.mdb");
$conn->Open($connstr);
$rs = new com("ADODB.RecordSet");
$rs->Open("select * from Ren",$conn,1,1);
while(! $rs->eof)
{
echo $rs->Fields(1)->value;
echo "<br>";
echo $rs->Fields(2)->value;
echo "<br>";
echo "<hr>";
$rs->MoveNext();
}
?>
//-----------插入有資訊
<?php
$connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("./MyDB.mdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);
$issuetime=date("Y-m-d H:i:s");
$sql="insert into Ren (name,age) values('李四','20')";
$result=odbc_exec($connid,$sql);
if($result) echo "successful";
else echo "failed";
?>
//-------------更新資料
<?php
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./MyDB.mdb");
$conn->Open($connstr);
$query = "update Ren set name='王五' where name='李四' ";
$result =$conn->Execute($query);
if($result)
echo "更新資料成功";
else
echo "更新資料失敗";
?>
//-----------刪除資料
<?php
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./MyDB.mdb");
$conn->Open($connstr);
$query = "delete from Ren where name='王五' ";
$result =$conn->Execute($query);
if($result)
echo "刪除成功";
else
echo "刪除失敗";
?>
//---------------查詢指定資料
<?php
//讀取mdb資料庫例程
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./MyDB.mdb");
$conn->Open($connstr);
$rs = new com("ADODB.RecordSet");
$rs->Open("select * from Ren where name = '李佳' ",$conn,1,1);
while(! $rs->eof)
{
echo $rs->Fields(1)->value;
echo "<br>";
echo $rs->Fields(2)->value;
echo "<br>";
echo "<hr>";
$rs->MoveNext();
}
?>
到此Access資料庫的讀取就完美實現了