1. 程式人生 > >C# 讀取Access資料庫及php讀取伺服器上的Access資料庫

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資料庫的讀取就完美實現了