當前位置:首頁 » 數據倉庫 » c如何連接access資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c如何連接access資料庫

發布時間: 2023-06-06 00:34:59

c語言如何連接Access資料庫

看視頻上是連接Mysql資料庫,MySQL安裝後配置比較麻煩,所以我試著用老師給的模板連接Access資料庫,Access是比較方便使用的 只要裝了office幾乎都有. 首先在網路搜索odbc 連接字元串 找到的是asp連接Access的方法,但是ODBC是通用的,所以直接拿過來也能用. 將 SQLCHAR ConnStrIn[MAXBUFLEN] = 「DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=root;DATABASE=test;CharSet=gbk;」; 部分改成 SQLCHAR ConnStrIn[MAXBUFLEN] = 「Driver={Microsoft Access Driver (*.mdb)};Dbq=//mydatabase.mdb;Uid=Admin;Pwd=;CharSet=gbk;」; Dbq指的是你的資料庫所在路勁 當然之前你應該在c:/下新建一個資料庫名為mydatabase.mdb,而且如果後面的SQL操作語句是老師寫的 result = SQLPrepare(hstmt,(SQLCHAR*)「insert into T_Person(FAge,FName) values(20,'kider')」,SQL_NTS); 那麼你也要在之前建立好一個表T_Person,和表中的兩個欄位FAge,FName.否則會出錯. 怎麼樣,已經成功鏈接到Access了吧,接下來你就可以發揚廣大了,做個管理系統之類的東東.!

② c++怎麼連接access資料庫

環境配置:
1. 先安裝你的Access資料庫(微軟Office 2016中含有或者單獨下載,下載地址:http://msdn.itellyou.cn/ 左側選擇應用程序一欄,注意選擇下載64位,即標有X64的)
特殊情況查看意外解決方案 (A)
2. 安裝Microsoft Access database engine 2007,他的作用暫時可理解為我們所寫的程序與Access之間的溝通橋梁--「傳話人」。
Microsoft Access database engine 2010(可以安裝,但後面的代碼是2007的,所以暫時建議使用2007)
下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255
Microsoft Access database engine 2007
下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=23734
特殊情況查看意外解決方案 (C)

連接與測試代碼:
本例代碼使用VS2010以上版本測試
建議去文末下載寫好的含注釋的測試代碼看。

1. 新建你的資料庫表
打開Access
選擇空白資料庫,為你的資料庫中表項起一個名字 如 Test
設計你的存儲表格
本例附有測試表格database1.accdb
2.
在你程序的stdafx.h頭文件中加入
#import"C:/ProgramFiles/CommonFiles/System/ADO/msado15.dll"
rename("EOF","adoEOF"), rename("BOF","adoBOF")
(如果載入失敗的話,去c:\program files\common files\system\ado查看是否有msado15.dll)
3.測試代碼介紹
// LinkDBForHX.cpp : 定義控制台應用程序的入口點。

[cpp] view plain

#include "stdafx.h"
#include<iostream>//atlstr
#include<atlstr.h>
using namespace ADODB;
using namespace std;

class AdoAccess {
public:
_ConnectionPtr HX_pConnection; // 資料庫指針
_RecordsetPtr HX_pRecordset; // 命令指針
_CommandPtr HX_pCommand; // 記錄指針
void OnInitADOConn() {
::CoInitialize(NULL);
try
{
HX_pConnection.CreateInstance(__uuidof(Connection));//等價於 //HX_pConnection.CreateInstance("ADODB.Connection");
//此句包含定位你資料庫的所需的訪問信息
_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb;Persist Security Info=False ";
//測試//_bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database1.accdb;Persist Security Info=False";//此句包含定位你資料庫的所需的訪問信息
//測試//_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Driver = { Microsoft Access Driver(*.mdb, *.accdb) }; DBQ =Database1.accdb;Persist Security Info=False ";
//此句包含定位你資料庫的所需的訪問信息
//連接master資料庫,無密碼。
HX_pConnection->Open(strConnect,"","",adModeUnknown); //連接資料庫

cout << "連接成功,並獲得智能指針" << endl;
}
catch (_com_error e)
{
cout <<e.Description() << endl;
}

}
void ExitConnect() {
if (HX_pRecordset != NULL)
HX_pRecordset->Close();
HX_pConnection->Close();
::CoUninitialize();
}
};

int main()
{
AdoAccess dataBase;

//初始化
dataBase.OnInitADOConn();
dataBase.HX_pRecordset.CreateInstance("ADODB.Recordset");

//選擇名為Test的表格
dataBase.HX_pRecordset->Open("select * from Test",
dataBase.HX_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);

int i = 0;
//讀取其中的name欄位所有數據,並顯示
while (!dataBase.HX_pRecordset->adoEOF)
{

_variant_t var;
string strValue;
var = dataBase.HX_pRecordset->GetCollect("name");
//其他類似,都是通過HX_pRecordset傳遞SQL語句執行查找、添加、刪除等命令

if (var.vt != VT_NULL)
strValue = _com_util::ConvertBSTRToString((_bstr_t)var);

++i;
cout << "name " << i << " " << strValue << endl;;

dataBase.HX_pRecordset->MoveNext();
}

//卸載com組件
dataBase.ExitConnect();
int xxxx = 0;
cout << "輸入數字結束\n";
cin >> xxxx;
return 0;
}
意外情況解決方案
A 描述:未在本地計算機上注冊「microsoft.ACE.oledb.12.0」提供程序。
請正確安裝環境配置中的第一步
B 若A無法解決問題。
選擇 該應用程序的 應用程序池 ------>選擇高級設置--------->啟用32位應用程序 ------->true
操作如下:
按下win + R
在彈出的對話框中輸入inetmgr,然後按回車鍵
選擇最左側
點擊應用程序池
再點擊下圖的DefaultAPPPool
選擇高級設置
選擇啟用32位應用程序 ---置為True.
最後選擇確認保存
C 重新安裝 Microsoft Access databaseengine 2007
D 程序若提示缺少符號集,請下載相關符號集或者在聯網狀態下動態載入

③ 如何連接access資料庫

1

首先確保Aess與開發工具Visual Studio都正確安裝了,如果沒安裝的話需要下載相關的軟體安裝一下,Visual Studio不限制你的版本,2012,2008什麼的都行。

2

然後在一個盤符下右鍵創建一個aess文件,比如我創建了一個aaa.adb ,注意Aess07之前你創建的話後綴名都是.mdb而07和10版本後綴名已經為.adb了。這個需要你熟悉的,因為不同的後綴名影響下面的連接的。

3

然後我們在Aess中添加一個數據表(tb_test),隨便加幾列內容,如下所示:

4

打開Visual Studio,新建一個Winform窗體,在窗體上放一個button按鈕,剩下的就頌旦碧是書寫點擊按鈕後的方法了

5

點擊button按鈕後我們要做的就是連接資料庫,然後查詢資料庫中我們剛才新建的表,將其賦值給一個DataSet。我們先來看看怎麼怎麼連接。連接要用到連接字元串,這個就和上面我們說的後綴名有聯系了。注意.mdb和.adb的連接方式是不一樣的,分別如下:

string ConStr_Adb = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:aaa.adb;Persist Security Info=False;";

string ConStr_Mdb = @"Provider=Microsoft.ACE.OLEDB.4.0;Data Source=F:aaa.adb;Persist Security Info=False;";

6

拼接好連接字元串以後,下面就野舉是建立連接獲取數據了,這我就不多說了,代碼截圖整體如下:

7

寫完了以後你運行以後,可能會報如下的錯誤:未在本地計算機上注冊microsoft.ace.12.0。這個是由於計算機中缺少驅動程序造成的,去官網下載安裝即可

8

到這里連接Aess資料庫的方法就講解完了,我們用的是net,你如果用遲芹別的語言,步驟也一樣,只不過換一下新建連接的方式即可。

④ c# 區域網連接ACCESS資料庫如何寫連接字元串

1.首先使用Access創建一個數據保存在硬碟某處,使用.MDB。

⑤ 怎樣用C++連接並使用access資料庫

使用C++編程語言,連接對Access資料庫進行操作,常用的方法有DAO和ADO兩種方式,本文將介紹採用ADO的方式方位Access資料庫。
先介紹一下ADO,ADO (ActiveX Data Objects) 是一個用於存取數據源的COM組建。它提供了編程語言和統一數據訪問方式OLE DB的一個中間層。允許開發人員編寫訪問數據的代碼而不用關心資料庫是如何實現的,而只用關心到資料庫的連接。
在程序的開始,首先導入所需要的庫:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") ,這里重命名EOF是必要的,因為典型的VC應用都已經定義了EOF作為常數-1。
完整的程序如下,以注釋的形式來對程序進行解釋:
_ConnectionPtr m_pConnection; //連接access資料庫的鏈接對象
_RecordsetPtr m_pRecordset; //結果集對象
CoInitialize(NULL); //初始化
m_pConnection.CreateInstance(__uuidof(Connection)); //實例化對象

//連到具體某個mdb ,此處的的Provider語句因Access版本的不同而有所不同。
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyAccess.mdb","","", adModeUnknown);
}
catch(_com_error e)
{
AfxMessagebox(_T("資料庫連接失敗!"));
return;
}

m_pRecordset.CreateInstance(__uuidof(Recordset)); //實例化結果集對象
//執行sql語句
try
{
CString sql= _T("select * from Patient");
m_pRecordset->Open(sql, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection= NULL;
}
return ;
}
//處理結果集
try
{
//若結果為空,結束
if(m_pRecordset->BOF)
{
AfxMessageBox_T(("表內數據為空!"));
if(m_pConnection->State)
{
m_pRecordset->Close();
m_pRecordset = NULL;
m_pConnection->Close();
m_pConnection= NULL;
}
return ;
}
//游標定位到第一條記錄
m_pRecordset->MoveFirst();
_variant_t var; //從結果集中取出的數據放到var中
char *name;
while(!m_pRecordset->adoEOF)
{
var= m_pRecordset->GetCollect("Name"); //要取欄位的名稱。
if(var.vt != VT_NULL)
{
name= _com_util::ConvertBSTRToString((_bstr_t)var); //轉換成char*類型
}
string MyName = name;
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMssage());
}
//退出程序時的處理 ,關閉資料庫的相關操作
if(m_pConnection->State)
{
m_pRecordset->Close();
m_pRecordset = NULL;
m_pConnection->Close();
m_pConnection= NULL;
}

⑥ 如何在c程序中調用access資料庫

c語言不能連接資料庫,只能用文件保存數據;
我在學習的時候也曾遇到過這樣的問題,請教老師,老師告訴我C語言主要用來開發系統的,還有就是用來開發游戲的。一般用文件保存數據。不會用到資料庫;
要用資料庫的語言有VB,java,c#,Dephi等等

⑦ MFC中如何連接access資料庫

比如在你的工程目錄中建一個dbfvir.mdb//Access資料庫,然後你需要做以下操作:

1.在StadAfx.h裡面添加#include<afxdb.h>//新加入頭文件,用於CDatabase類。

2.在StadAfx.h最後的#endif上添加#import"msado15.dll"no_namespacerename("EOF","rsEOF")

這時,你要把msado15.dll拷到與dbf同級的目錄,也就是工程目錄里,當然你可以該路徑

3.在你自己的工程里,比如MyProc是你建的工程,添加代碼

CMyPorcApp::CMyProcApp(){

CoInitialize(NULL);

SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MicrosoftAccessDriver(*.mdb)",

"DSN=MyImage;DBQ=dbf\vir.mdb;DEFAULTDIR=dbf");//注冊本地資料庫數據源

m_db.OpenEx("DSN=MyImage;;",CDatabase::noOdbcDialog);//MyImage是數據源名稱

}

4.在前面的函數體之前創建全局變數CDatabasem_db;CRecordsetm_rec(&m_db);

5.使用資料庫{

CStringstrSQL="select*fromvirdb";

BSTRbstrSQL=strSQL.AllocSysString();

m_rec.Open(CRecordset::dynaset,strSQL);

while(!m_rec.IsEOF())

{

//使用資料庫的代碼,讀出來的數據都是字元串型的

CStringMyVirable;

m_rec.GetFieldValue("欄位名",MyVirable);//將某個欄位的當前行的值讀到MyVirabl中

//......

m_rec.MoveNext();//將記錄移到下一行

}

}

本程序是自動注冊數據源的,當然可以手動注冊數據源,關於如何注冊數據源並不麻煩,敘述起來不太方面,你就參考其他的吧。不過建議不用手動注冊數據源,這樣你地程序移植性不好.