C++ 中實現(xiàn)把EXCEL的數(shù)據(jù)導入數(shù)據(jù)庫(ACCESS、MSSQL等)實例代碼
C++ 中實現(xiàn)把EXCEL的數(shù)據(jù)導入數(shù)據(jù)庫(ACCESS、MSSQL等)實例代碼
在把EXCEL的數(shù)據(jù)導入數(shù)據(jù)庫之前,先進行一些簡單的準備工作:
1。把數(shù)據(jù)所在的EXCEL表另保存為DBF 4格式。
2。打開BCB,添加AdoTable(改名為DBFTable)和DataSource這兩個控件
OK,準備工作,到此結(jié)束,剩下的就是打代碼了
1。在Form_Load()事件中,加入以下代碼:
AnsiString filepath=ExtractFilePath(FileName); //FileName為DBF文件名 AnsiString tablename=ExtractFileName(FileName).SubString(0,ExtractFileName(FileName).Length()-4);//去除文件的擴展名 //--------------------用于連接DBF文件-------------------------------- DBFTable->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Password=/"/";Data Source=/""+filepath+"/"; Extended Properties=dbase 5.0;Persist Security Info=True"; DBFTable->TableName=tablename; DBFTable->Open();
2。新建一個類的成員函數(shù)void __fastcall ExcelToDB(TADOQuery *ADOQuery);
以下是函數(shù)的具體實現(xiàn):
void __fastcall TDBFToDBForm::ExcelToDB(TADOQuery *ADOQuery) {//實現(xiàn)很簡單,只是把DBFTable的數(shù)據(jù)逐項添加的本地的數(shù)據(jù)庫 DBFTable->First(); for(int j=0;j<DBFTable->RecordCount;j++) { ADOQuery->Append(); for(int i=0;i<DBFTable->FieldCount;i++) ADOQuery->FieldByName(DBFTable->FieldList->Strings[i])->AsString=DBFTable->FieldByName(DBFTable->FieldList->Strings[i])->AsString; ADOQuery->Post(); DBFTable->Next(); } ShowMessage("導入成功!"); }
說明:DBFTable使用來裝載EXCEL另保存的數(shù)據(jù),而程序本身裝載數(shù)據(jù)用的是ADOQuery(當然,你也可以改變),
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
C++ OpenCV實戰(zhàn)之手寫數(shù)字識別
這篇文章主要為大家詳細介紹了如何使用machine learning機器學習模塊進行手寫數(shù)字識別功能,文中的示例代碼講解詳細,感興趣的可以了解一下2022-08-08C++結(jié)構(gòu)體字節(jié)對齊和共用體大小
這篇文章主要介紹了C++結(jié)構(gòu)體字節(jié)對齊和共用體大小,結(jié)構(gòu)體內(nèi)存對齊在筆試和面試中經(jīng)常被問到,所以這篇文章做個總結(jié),首先通過代碼驗證不同結(jié)構(gòu)體的內(nèi)存大小,需要的朋友可以參考下2021-11-11詳解C語言結(jié)構(gòu)體中的char數(shù)組如何賦值
這篇文章主要給大家介紹了關于C語言結(jié)構(gòu)體中的char數(shù)組如何賦值的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-03-03C++類模板實戰(zhàn)之vector容器的實現(xiàn)
本文我們將做一個類模板實戰(zhàn)-手寫精簡版vector容器。讓我們自己封裝一個數(shù)組類,可以適應基本數(shù)據(jù)類型和自定義數(shù)據(jù)類型,感興趣的可以了解一下2022-07-07