資源簡介
這是一個用VS連接SQL_SERVER的一個簡單demo,有注釋,清晰易懂,可以很快明白代碼是怎么和數據庫連接的,并且讓你在應用程序里面修改數據的體驗,大神勿噴,很好的入門例子。
代碼片段和文件信息
//?Con_sql.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include
#include//for?setw()
#include“windows.h“
using?namespace?std;
//導入ADO相關類說明路徑名可以根據自己系統安裝的ADO支持文件的路徑來自行設定
//#improt語句會在工程可執行程序輸出目錄中產生兩個文件,分別為*.tlh(類型庫頭文件)及*.tli(類型庫實現文件)
//語句no_namespace說明ADO對象不使用命名空間,rename(“EOF“?“EndOfFile“)說明將ADO中結束標志EOF改為EndOfFile,以避免和其它庫中命名相沖突
#import“C:\Program?Files\Common?Files\System\ado\msado15.dll“?no_namespace?rename(“EOF““EndOfFile“)
class?STU
{
public:
char?sname[10];
int?sage;
char?test[20];
public:
STU(){}
~STU(){}
};
int?_tmain(int?argc?_TCHAR*?argv[])
{
STU?student;
::CoInitialize(NULL);//初始化OLE/COM庫環境,為訪問ADO接口做準備
//_RecordsetPtr智能指針,可以用來打開庫內數據表,并可以對表內的記錄、字段等進行各種操作
_RecordsetPtr?m_pRecordset(“ADODB.Recordset“);//定義記錄集對象
//_ConnectionPtr智能指針,通常用于打開、關閉一個庫連接或用它的Execute方法來執行一個不返回結果的命令語句
_ConnectionPtr?m_pConnection(“ADODB.Connection“);//定義數據庫連接對象
_bstr_t?bstrSQL(“select?*from?test_db“);//查詢語句
char*?query_cmd?=?“DELETE?FROM?test_db?WHERE?name?=?‘sge‘“;
try
{
m_pConnection.CreateInstance(“ADODB.Connection“);//創建Connection對象
//設置連接字符串,必須是BSTR型或者_bstr_t類型若數據庫在網絡上則Server為形如(192.168.1.53340)?
_bstr_t?strConnect?=?“Provider=SQLOLEDB;?Server=SHOWLO-PC;Database=DB_show;?uid=sa;?pwd=Showlo328;“;//這需要自己配自己的服務器
m_pConnection->Open(strConnect?““?““?adModeUnknown);//NULL、adConnectUnspecified、//建立與服務器連接
if?(m_pConnection?==?NULL)
{
cerr?<“Lind?data?ERROR!\n“;
}
m_pRecordset.CreateInstance(__uuidof(Recordset));//創建記錄集對象
//取得表中的記錄
m_pRecordset->Open(bstrSQL?m_pConnection.GetInterfacePtr()?adOpenDynamic?adLockOptimistic?adCmdText);
_variant_t??vsname?vsage?vstest;//對應庫中的nameagetest
cout?<“姓名年齡性test“;
cout?<“\n-------------------------------------------\n“;
while?(!m_pRecordset->EndOfFile)
{
vsname?=?m_pRecordset->GetCollect(“name“);
vsage?=?m_pRecordset->GetCollect(“age“);
vstest?=?m_pRecordset->GetCollect(“test“);
if?(vsname.vt?!=?VT_NULL&&?vsage.vt?!=?VT_NULL?&&vstest.vt?!=?VT_NULL)
{
cout.setf(ios::left);
cout?<
cout?<
cout?<
cout.unsetf(ios::left);
cout?<
}
m_pRecordset->MoveNext();//移動下一條記錄
}
cout?<“\n------------------------------------------\n“;
cout?<“\n請輸入你要添加的學生信息\n“;
cout?<“\n姓名:“;
cin?>>?student.sname;
cout?<“\n年齡:“;
cin?>>?student.sage;
cout?<“\n性別:“;
cin?>>?student.test;
m_pRecordset->MoveFirst();//移動到第一條記錄
m_pRecordset->AddNew();//添加新記錄
m_pRecordset->PutCollect(“name“?_variant_t(student.sname));
m_pRecordset->PutCollect(“age“?_variant_t(student.sage));
m_pRecordset->
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3801??2018-06-15?16:11??con_sqlser\Con_sql\Con_sql\Con_sql.cpp
?????文件???????4533??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql\Con_sql.vcxproj
?????文件???????1314??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql\Con_sql.vcxproj.filters
?????文件???????1457??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.log
?????文件?????316685??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.obj
?????文件????1638400??2018-06-15?15:03??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.pch
?????文件???????1446??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\cl.command.1.tlog
?????文件??????32812??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\CL.read.1.tlog
?????文件???????1060??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\CL.write.1.tlog
?????文件????????167??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\Con_sql.lastbuildstate
?????文件???????1292??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\li
?????文件???????2954??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\li
?????文件????????562??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog\li
?????文件?????170857??2017-04-21?23:34??con_sqlser\Con_sql\Con_sql\Debug\msado15.tlh
?????文件?????148904??2017-04-21?23:34??con_sqlser\Con_sql\Con_sql\Debug\msado15.tli
?????文件??????11492??2018-06-15?15:03??con_sqlser\Con_sql\Con_sql\Debug\stdafx.obj
?????文件?????814080??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\vc120.idb
?????文件?????921600??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\vc120.pdb
?????文件???????1510??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql\ReadMe.txt
?????文件????????213??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql\stdafx.cpp
?????文件????????234??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql\stdafx.h
?????文件????????236??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql\targetver.h
?????文件???33443840??2018-06-15?16:13??con_sqlser\Con_sql\Con_sql.sdf
?????文件????????967??2018-06-15?15:02??con_sqlser\Con_sql\Con_sql.sln
????..A..H.?????20480??2018-06-15?16:13??con_sqlser\Con_sql\Con_sql.v12.suo
?????文件?????108544??2018-06-15?15:42??con_sqlser\Con_sql\Debug\Con_sql.exe
?????文件?????939064??2018-06-15?15:42??con_sqlser\Con_sql\Debug\Con_sql.ilk
?????文件????1747968??2018-06-15?15:42??con_sqlser\Con_sql\Debug\Con_sql.pdb
?????文件????3080192??2018-06-15?15:02??con_sqlser\Con_sql\ipch\con_sql-3897785e\con_sql-fb8c3cfb.ipch
?????目錄??????????0??2018-06-15?15:42??con_sqlser\Con_sql\Con_sql\Debug\Con_sql.tlog
............此處省略10個文件信息
評論
共有 條評論