C# 读取Access数据库及php读取服务器上的Access数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MIYIshi/article/details/73557034

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数据库的读取就完美实现了

猜你喜欢

转载自blog.csdn.net/MIYIshi/article/details/73557034
今日推荐