新聞中心
C語言一直是計(jì)算機(jī)編程領(lǐng)域中應(yīng)用最為廣泛的編程語言之一。在C語言中,操作數(shù)據(jù)庫是一個(gè)非?;A(chǔ)的操作,然而,由于C語言本身并沒有提供直接操作數(shù)據(jù)庫的函數(shù)和API,因此開發(fā)者們一直在不斷尋找便捷,高效的C操作數(shù)據(jù)庫的方法。

數(shù)據(jù)庫庫(Database Library)作為一款C語言的操作數(shù)據(jù)庫的開源庫,它在C語言程序開發(fā)領(lǐng)域中受到越來越多的關(guān)注。下面我們將專門為大家介紹一下這款神器級(jí)的C操作數(shù)據(jù)庫庫——數(shù)據(jù)庫庫。
1. 簡(jiǎn)介
數(shù)據(jù)庫庫又叫DB庫,是一款面向?qū)ο蟮母咝語言操作數(shù)據(jù)庫的開源庫。DB庫可以讓開發(fā)者們?cè)贑語言中實(shí)現(xiàn)易用、安全、高效的操作數(shù)據(jù)庫。這個(gè)C操作數(shù)據(jù)庫庫支持MySQL的C接口,PostgreSQL的C接口和Microsoft SQL Server的C接口。另外,它支持對(duì)SQL語句進(jìn)行預(yù)處理,提高程序的執(zhí)行效率。
2. 特點(diǎn)
(1)輕量級(jí)
數(shù)據(jù)庫庫是一款輕量級(jí)的數(shù)據(jù)庫操作庫,相對(duì)于其他同類庫,它的開發(fā)者們注重它的插件化設(shè)計(jì),它只需要極少的緩存,這使它在內(nèi)存占用上非常低。
(2)跨平臺(tái)
數(shù)據(jù)庫庫是跨平臺(tái)設(shè)計(jì)的,使用它操作各種不同類型的數(shù)據(jù)庫并不需要增加更多的代碼。只需要改變編譯器相關(guān)的參數(shù)即可。這大大方便了開發(fā)者在不同操作系統(tǒng)之間移植數(shù)據(jù)庫操作代碼。
(3)穩(wěn)定安全
在開發(fā)過程中,數(shù)據(jù)庫庫注重安全和穩(wěn)定性。在數(shù)據(jù)庫和代碼不兼容的情況下,DB庫會(huì)對(duì)用戶數(shù)據(jù)進(jìn)行檢查,從而避免了一系列的錯(cuò)誤和誤操作。它廣泛地運(yùn)用于眾多企業(yè)軟件開發(fā)中,如金融類、醫(yī)療類等。
(4)易于集成
數(shù)據(jù)庫庫非常容易集成到你的現(xiàn)有應(yīng)用程序中。DB庫代碼的體積很小,代碼結(jié)構(gòu)非常清晰明了,不需要很多學(xué)習(xí)和修改就可以輕松地添加到你的代碼中。
(5)可擴(kuò)展性
數(shù)據(jù)庫庫支持多種數(shù)據(jù)類型,可以使用靜態(tài)或動(dòng)態(tài)鏈接。通過預(yù)處理SQL語句,DB庫提供了多種查詢數(shù)據(jù)的方法。它支撐多種操作系統(tǒng),有使命設(shè)計(jì)軟件的機(jī)制,可依據(jù)不同情況選擇不同規(guī)模的緩存和底層存儲(chǔ)。
3. 應(yīng)用框架
數(shù)據(jù)庫庫在那些開源框架中應(yīng)用廣泛呢?下面是常用框架介紹:
(1)MySQL Connector/C庫
MySQL Connector/C庫是MySQL提供的CDU驅(qū)動(dòng)層,它是MySQL官方提供的一套C庫。MySQL Connector/C庫包括了多種API接口,開發(fā)者可以將其添加到自己的應(yīng)用程序中,用于管理MySQL數(shù)據(jù)庫。
(2)PostgreSQL C API庫
PostgreSQL C API庫是PostgreSQL數(shù)據(jù)庫的官方C語言接口,它支持開發(fā)者以非常簡(jiǎn)單的方式在C語言中操作PostgreSQL數(shù)據(jù)庫。PostgreSQL C API庫是一款非常穩(wěn)定、成熟的庫,可以為開發(fā)者們省去很多繁瑣的工作。
4.
C操作數(shù)據(jù)庫庫是一款非常重要的C語言開源庫,可以為開發(fā)者們提供全面的數(shù)據(jù)庫操作解決方案,解決了C語言在操作數(shù)據(jù)庫上的不足。DB庫具有跨平臺(tái)、高效、易于集成、可擴(kuò)展性等特點(diǎn),對(duì)于眾多需要在C語言中編寫數(shù)據(jù)庫程序的開發(fā)者們來說,選用數(shù)據(jù)庫庫無疑是個(gè)非常好的選擇。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220如何在C/C++程序中使用數(shù)據(jù)庫
下面的 C 代碼段顯示了如何連接到一個(gè)現(xiàn)有的數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,那么它就會(huì)被創(chuàng)建,最后將返回一個(gè)數(shù)據(jù)庫對(duì)象。
#include #include
int main(int argc, char* argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open(“test.db”, &db);
if( rc ){
fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));
exit(0);
}else{
fprintf(stderr, “Opened database successfully\n”);
}
sqlite3_close(db);
}
一般要看使用的數(shù)據(jù)庫。如果 操作 sql server 需要用到 ADO 驅(qū)動(dòng),這種驅(qū)動(dòng)使用MFC做的包裝類比較多一些,在控制臺(tái)直接編寫代碼可能稍顯繁瑣。
如果操作mysql,在安裝mysql的時(shí)候,有相應(yīng)的include頭文件和庫文件,可以在自己的IDE開發(fā)環(huán)境中進(jìn)行設(shè)置。
建議使用 sqlit3
怎樣用vc++ 6.0訪問SQL Server數(shù)據(jù)庫
給你個(gè)例子:ServerIp是服務(wù)器的ip地址,databasename是數(shù)據(jù)庫名
#import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,”adoEOF”)
int main()
{
CoInitialize(NULL);
try
{
_ConnectionPtr pConn(“ADODB.Connection”);
_RecordsetPtr pRs(“ADODB.Recordset”);
pConn->Open(“driver={SQL Server};Server=ServerIP;DATABASE=databasename;UID=sa;PWD=”,””,””,adModeUnknown);
pRs->Open(“select * from TABLENAME”,_variant_t((IDispatch*)pConn,true),adOpenForwardOnly,adLockReadOnly,adCmdUnknown);
while(!pRs->adoEOF)
{
CString FieldName1,FieldName2;
_variant_t var;
var = pRs->GetCollect(_variant_t(“FieldName1”));
var.ChangeType(VT_BSTR);
FieldName1 = var.bstrVal;
…
pRs->MoveNext();
}
}
catch(CException *e)
{
e->ReportError();
e->Delete();
}
CoUninitialize();
return 0;
}
從功能簡(jiǎn)單的數(shù)據(jù)庫(如Jet Engine)到復(fù)雜的大型數(shù)據(jù)庫系統(tǒng)(如oracle),VC++6.0都提供了一些編程接口。本文主要介紹以下五種: 1.ODBC API;2.MFC ODBC類;3.MFC DAO類;(數(shù)據(jù)訪問對(duì)象)4.MFC的OLE/DB;5.ActiveX數(shù)據(jù)對(duì)象(ADO)。6.RDO遠(yuǎn)程數(shù)據(jù)訪問
1.開放數(shù)據(jù)庫連接(ODBC API):提供了一個(gè)通用的編程接口,允許程序與多種不同的數(shù)據(jù)庫連接。它為Oracle,SQL Server,MS Excel等都提供了驅(qū)動(dòng)程序,使得用戶可以使用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行直接的底層功能操作。在使用ODBC API時(shí),用戶須引入的頭文件為 “sql.h “, “sqlext.h “, “sqltypes.h “。用ODBC API創(chuàng)建數(shù)據(jù)庫應(yīng)用程序遵循一定的基本步驟:
之一步是分配ODBC環(huán)境,使一些內(nèi)部結(jié)構(gòu)初始化。完成這一步,須分配一個(gè)SQLHENV類型的變量在ODBC環(huán)境中做句柄使用。
第二步是為將要使用的每一個(gè)數(shù)據(jù)源分配一個(gè)連接句柄,由函數(shù)SQLALLocHandle()完成。
第三步是使用SQLConnect()把連接句柄與數(shù)據(jù)庫連接,可以先通過SQLSetConnectAttr()設(shè)置連接屬性。
然后就可以進(jìn)行SQL語句的操作,限于篇幅,相關(guān)的函數(shù)就不具體介紹了,讀者可以參考相關(guān)書籍。
操作完成后,用戶取回相應(yīng)的結(jié)果,就可以取消與數(shù)據(jù)庫的連接。
最后需要釋放ODBC環(huán)境。
ODBC API的特點(diǎn)是功能強(qiáng)大豐富,提供了異步操作,事務(wù)處理等高級(jí)功能,但相應(yīng)的編程復(fù)雜,工作量大。
2.MFC ODBC類:MFC1.5后的版本里引入封裝了ODBC功能的類。通過這些類提供與ODBC的接口,使得用戶可以不須處理ODBC API中的繁雜處理就可以進(jìn)行數(shù)據(jù)庫操作。主要的MFC ODBC類如下。
CDatabase類:一個(gè)CDatabase對(duì)象表示一個(gè)到數(shù)據(jù)源的連接,通過它可以操作數(shù)據(jù)源。應(yīng)用程序可使用多個(gè)CDatabase對(duì)象:構(gòu)造一個(gè)對(duì)象并調(diào)用OpenEx()成員函數(shù)打開一個(gè)連接。接著構(gòu)造CRecordSet對(duì)象以操作連接的數(shù)據(jù)源,并向CDatabase對(duì)象傳遞記錄集構(gòu)造程序指針。完成使用后用Close()成員函數(shù)銷毀CDatabase對(duì)象。一般情況下并不需要直接使用CDatabase對(duì)象,因?yàn)镃RecordSet對(duì)象可以實(shí)現(xiàn)大多數(shù)的功能。但是在進(jìn)行事務(wù)處理時(shí),CDatabase就起到關(guān)鍵作用。事務(wù)(Transaction)指的是將一系列對(duì)數(shù)據(jù)源的更新放在一起,同時(shí)提交或一個(gè)也不提交,為的是確保多用戶對(duì)數(shù)據(jù)源同時(shí)操作時(shí)的數(shù)據(jù)正確性。
CRecordSet類:一個(gè)CRecordSet對(duì)象代表一個(gè)從數(shù)據(jù)源選擇的一組記錄的-記錄集。記錄集有兩種形式:snapshot和dynaset。前者表示數(shù)據(jù)的靜態(tài)視圖,后者表示記錄集與其他用戶對(duì)數(shù)據(jù)庫的更新保持同步。通過CRecordSet對(duì)象,用戶可以對(duì)數(shù)據(jù)庫中的記錄進(jìn)行各種操作。
CRecordView類:CRecordView對(duì)象是在空間中顯示數(shù)據(jù)庫記錄的視圖。這種視圖是一種直接連到一個(gè)CRecordSet對(duì)象的格式視圖,它從一個(gè)對(duì)話框模板資源創(chuàng)建,并將CRecordSet對(duì)象的字段顯示在對(duì)話框模板的控件里。對(duì)象利用DDX和RFX機(jī)制,使格式上的控件和記錄集的字段之間數(shù)據(jù)移動(dòng)自動(dòng)化,也就是說,用戶甚至不要編寫一行代碼就可以實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)庫記錄查看程序。
CDBException類:由Cexception類派生,以三個(gè)繼承的成員變量反映對(duì)數(shù)據(jù)庫操作時(shí)的異常:
m_nRetCode:以O(shè)DBC返回代碼(SQL_RETURN)的形式表明造成異常的原因。
m_strError:字符串,描述造成拋出異常的錯(cuò)誤原因。
m_strStateNativeOrigin:字符串,用以描述以O(shè)DBC錯(cuò)誤代碼表示的異常錯(cuò)誤。
MFC數(shù)據(jù)庫類成員函數(shù)都能拋出CDBException類型的異常,所以在代碼對(duì)數(shù)據(jù)庫進(jìn)行操作后監(jiān)測(cè)異常是正確做法。
MFC ODBC類在實(shí)際開發(fā)中應(yīng)用最廣,因?yàn)樗δ茇S富,操作相對(duì)簡(jiǎn)便。
3.MFC DAO(數(shù)據(jù)訪問對(duì)象)編程:DAO用于和微軟的Access數(shù)據(jù)庫接口。在數(shù)據(jù)庫應(yīng)用程序如果只需與Access數(shù)據(jù)庫接口時(shí),使用DAO編程較方便。其主要類如下。
CDaoWorkspace:CDaoWorkspace對(duì)象可以讓一個(gè)用戶管理從登陸到離開期間,指定的密碼保護(hù)的數(shù)據(jù)庫會(huì)話全過程。大多數(shù)情況下不要多個(gè)工作區(qū)也不要?jiǎng)?chuàng)建明確的工作區(qū)對(duì)象。因?yàn)樵诖蜷_數(shù)據(jù)庫和記錄集對(duì)象時(shí),它們可以使用DAO缺省工作區(qū)。
CDaoDatabase:代表一個(gè)連接,類似上述CDatabase類。
CDaoRecordSet:用來選擇記錄集并操作,類似上述CRecordSet類。
CDaoRecordView:類似上述CRecordView類。
CDaoException:類似上述CDBException類。
CDaoTableDef:表示基本表或附加表的定義。每個(gè)DAO數(shù)據(jù)庫對(duì)象包括一個(gè)稱為TableDef的收集,包含所有存儲(chǔ)的DAO表定義對(duì)象。CDaoTableDef對(duì)象可以用來控制表定義。
CDaoQueryDef:CDaoQueryDef對(duì)象表示了一個(gè)查詢定義(querydef)。
CDaoFieldExchange:支持?jǐn)?shù)據(jù)庫類使用的DAO字段交換(DFX)例程。也可處理事務(wù),類似MFC ODBC類。
MFC DAO僅用來支持Access數(shù)據(jù)庫,應(yīng)用范圍相對(duì)固定。
4.OLE DB:OLE DB在數(shù)據(jù)提供程序和用戶之間提供了靈活的組件對(duì)象模型(COM)接口,這種靈活性有時(shí)會(huì)使得操作復(fù)雜化。OLE DB框架定義了應(yīng)用的三個(gè)基本類。
數(shù)據(jù)提供程序Data Provider:擁有自己的數(shù)據(jù)并以表格形式顯示數(shù)據(jù)的應(yīng)用程序。提供OLE DB的行集COM接口,期顯示范圍可以從單一數(shù)據(jù)表格的簡(jiǎn)單提供者知道更復(fù)雜的分布式數(shù)據(jù)庫系統(tǒng)。
使用者Consumers:使用OLE DB接口對(duì)存儲(chǔ)在數(shù)據(jù)提供程序中的數(shù)據(jù)進(jìn)行控制的應(yīng)用程序。用戶應(yīng)用程序歸為使用類。
服務(wù)提供程序Service Provider:是數(shù)據(jù)提供程序和使用者的組合。服務(wù)提供程序沒有自己的數(shù)據(jù),但使用
OLE DB使用者接口來訪問存儲(chǔ)在數(shù)據(jù)提供程序中的數(shù)據(jù)。然后,服務(wù)提供程序通過打開數(shù)據(jù)提供程序接口使得數(shù)據(jù)對(duì)使用者有效。服務(wù)提供程序常用于向應(yīng)用程序提供高層次服務(wù),比如高級(jí)分布式查詢。
OLE DB編程時(shí),用戶使用組件對(duì)象開發(fā)應(yīng)用程序。這些組件有:
枚舉器:用于列出可用的數(shù)據(jù)源;
數(shù)據(jù)源:代表單獨(dú)的數(shù)據(jù)和服務(wù)提供程序,用于創(chuàng)建對(duì)話;
對(duì)話:用于創(chuàng)建事務(wù)和命令;
事務(wù):用于將多個(gè)操作歸并為單一事務(wù)處理;
命令:用于向數(shù)據(jù)源發(fā)送文本命令(SQL),返回行集;
錯(cuò)誤:用于獲得錯(cuò)誤信息。
5.ActiveX數(shù)據(jù)對(duì)象(ADO):是微軟提供的面向?qū)ο蟮慕涌冢cOLE DB類似,但接口更簡(jiǎn)單,具有更廣泛的特征數(shù)組和更高程度的靈活性。ADO基于COM,提供編程語言可利用的對(duì)象,除了面向VC++,還提供面向其他各種開發(fā)工具的應(yīng)用,如VB,VJ等。ADO在服務(wù)器應(yīng)用方面非常有用,特別是對(duì)于動(dòng)態(tài)服務(wù)器頁面ASP(Active Server Page)。
ADO對(duì)象結(jié)構(gòu)類似于OLE DB,但并不依靠對(duì)象層次。大多數(shù)情況下,用戶只需要?jiǎng)?chuàng)建并只使用需要處理的對(duì)象。下面的對(duì)象類組成了ADO接口。
Connection:用于表示與數(shù)據(jù)庫的連接,以及處理一些命令和事務(wù)。
Command:用于處理傳送給數(shù)據(jù)源的命令。
Recordset:用于處理數(shù)據(jù)的表格集,包括獲取和修改數(shù)據(jù)。
Field:用于表示記錄集中的列信息,包括列值和其他信息。
Parameter:用于對(duì)傳送給數(shù)據(jù)源的命令之間來回傳送數(shù)據(jù)。
Property:用與操作在ADO中使用的其他對(duì)象的詳細(xì)屬性。
Error:用于獲得可能發(fā)生的錯(cuò)誤的詳細(xì)信息。
在VC++使用ADO需要進(jìn)行COM操作,詳細(xì)方法在此就不贅述了。
在當(dāng)今流行的分布式開發(fā)環(huán)境下,VC++6.0在數(shù)據(jù)庫開發(fā)方面有較強(qiáng)的優(yōu)勢(shì),學(xué)會(huì)
在不同的場(chǎng)合選用不同的技術(shù),對(duì)開發(fā)人員來說是必要的技術(shù)。
常用VC、MFC訪問數(shù)據(jù)庫常用的技術(shù)是ADO
導(dǎo)入ADO庫
#import “c:\Program Files\Common Files\System\ADO\msado15.dll” no_namespace rename(“EOF”, “adoEOF”)
2、用導(dǎo)入的
動(dòng)態(tài)庫
的指針操作數(shù)據(jù)庫.
打開數(shù)據(jù)庫連接
_ConnectionPtr m_pConn; // 數(shù)據(jù)庫連接指針
// 創(chuàng)建Conneciton對(duì)象
m_pConn.CreateInstance(_T(“ADODB.Connection”));
用ConnectionPtr 的open方法m_pConn->Open(_bstr_t(m_sConn),
_T(“”), _T(“”), lOptions));
m_sConn為你連接數(shù)據(jù)庫的信息,你應(yīng)該按照你的要求打開數(shù)據(jù)庫
然后你用打開的那個(gè)連接進(jìn)行操作數(shù)據(jù)庫。比如
_RecordsetPtr pRec = m_pConn->Execute(_bstr_t(pszSql), NULL, CmdText);
pszSql 就你要操作數(shù)據(jù)庫的SQL語句。在這個(gè)SQL語句里你可以創(chuàng)建表、更新表等。
用ADO訪問的時(shí)候要求初始他COM庫和釋放COM對(duì)象
// 初始化COM環(huán)境(庫)
::CoInitialize(NULL);
//釋放COM對(duì)象
::CoUninitialize();
ODBC訪問數(shù)據(jù)庫
配置ODBC數(shù)據(jù)源:打開
控制面板
下的“數(shù)據(jù)源”,彈出“ODBC數(shù)據(jù)源管理器”,選擇DSN選項(xiàng)卡-》添加->你選擇你的SQL Server選項(xiàng),單擊完成。如圖然后你再按照向?qū)崾咎砑印?
代碼中用ODBC訪問數(shù)據(jù)庫你得加上afxdb.h
頭文件
,
用CDataBase 類連接數(shù)據(jù)庫、CRecordSet類查詢記錄。
現(xiàn)在在VC訪問數(shù)據(jù)庫常用的是ADO訪問,你可以找一下我前面的回答有ADO訪問數(shù)據(jù)庫的步驟。
CDataBase m_cODBCDb;
用CDataBase類的OpenEx()函數(shù)打開數(shù)據(jù)庫連接。連接
字符串
你自己構(gòu)造一下。
定義一個(gè)與上面數(shù)據(jù)庫相關(guān)的查詢對(duì)象
CRecordSet m_cODBCRec(&m_cODBCDb);
用這個(gè)查詢對(duì)象的open方法就可以執(zhí)行SQL語句與數(shù)據(jù)庫交互了;
這個(gè)不是一句兩句可以說清楚的
給你語句還有其他工作要做
比如用ADO連接數(shù)據(jù)源前的準(zhǔn)備工作
1)在頭文件中引入相應(yīng)的庫文件(一般放在StdAfx.h中)。
……
#import “c:\Program Files\Common Files\System\ADO\msado15.dll”
no_namespace rename(“EOF”,”_EOF”)
……
注意:為了避免類型庫文件中EOF與系統(tǒng)定義的EOF相關(guān)的名稱相沖突,所以使用rename將其重命名。
2)初始化COM環(huán)境(一般放在函數(shù)BOOL CTheApp::InitInstance()里面)。
CoInitialize(NULL);//初始化COM環(huán)境
還有Connection與Recordset
因?yàn)樵谑褂脭?shù)據(jù)庫時(shí),首先會(huì)打開數(shù)據(jù)庫,然后再對(duì)數(shù)據(jù)庫中的某個(gè)數(shù)據(jù)表進(jìn)行操作。ADO訪問數(shù)據(jù)庫時(shí)也要遵循這個(gè)規(guī)矩。Connection對(duì)象代表了打開與數(shù)據(jù)源的連接。而Recordset對(duì)象表示的是來自基本表或命令執(zhí)行結(jié)果的記錄集。在使用Connection與Recordset之前,需要?jiǎng)?chuàng)建它們的實(shí)例:
_ConnectionPtr cnn=NULL;
cnn.CreateInstance(__uuidof(Connection));
_RecordsetPtr rst=NULL;
rst.CreateInstance(_uuidof(Recordset));
完全可以把cnn及rst看成是一個(gè)對(duì)象指針來使用。而不用考慮它的COM對(duì)象的實(shí)例。
聲明一個(gè)Connection對(duì)象實(shí)例后,就可以使用這個(gè)對(duì)象實(shí)例來連接數(shù)據(jù)庫了。
比如cnn-ConnectionString=”uid=admin;pwd=111;DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=khzy.mdb;”; //連接ACCESS數(shù)據(jù)庫。
cnn-Open(L””,L””,L””,adConnectUnspecified);
還有具體的
還是建議你先看書
慢慢實(shí)踐
不愿意問老師
可以問同學(xué)
同學(xué)間還是有高手的
c操作數(shù)據(jù)庫的庫的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于c操作數(shù)據(jù)庫的庫,C操作數(shù)據(jù)庫神器:數(shù)據(jù)庫庫(Database Library),如何在C/C++程序中使用數(shù)據(jù)庫,怎樣用vc++ 6.0訪問SQL Server數(shù)據(jù)庫的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)是成都專業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、SEO優(yōu)化、手機(jī)網(wǎng)站、小程序開發(fā)、APP開發(fā)公司等,多年經(jīng)驗(yàn)沉淀,立志成為成都網(wǎng)站建設(shè)第一品牌!
網(wǎng)頁名稱:C操作數(shù)據(jù)庫神器:數(shù)據(jù)庫庫(DatabaseLibrary)(c操作數(shù)據(jù)庫的庫)
網(wǎng)站URL:http://www.dlmjj.cn/article/djhgppo.html


咨詢
建站咨詢
