Rumah pangkalan data tutorial mysql VC++对Access数据库的操作(查询、插入、更新、删除等)

VC++对Access数据库的操作(查询、插入、更新、删除等)

Jun 07, 2016 pm 03:42 PM
access padam masukkan beroperasi pangkalan data memperbaharui Pertanyaan

Microsoft Office Access是由 微软 发布的 关系 数据库 管理系统 。 Access 数据库 常应用于小型软件系统中, 比如: 生产管理 、 销售管理 、 库存管理 等各类企业管理软件,其最大的优点是:简单易学、使用灵活。 下面我们结合实例来详细说明,在VC MFC中

Microsoft Office Access是由微软发布的关系数据库管理系统Access数据库常应用于小型软件系统中,比如:生产管理销售管理库存管理等各类企业管理软件,其最大的优点是:简单易学、使用灵活。

下面我们结合实例来详细说明,在VC++ MFC中,如何使用Access数据库文件进行数据的存储,如何实现对数据库中数据的查询插入更新删除操作

(实例可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/8235865)

首先,怎样创建一个可供VC++ MFC程序使用的Access数据库,并在该数据库中创建数据表呢?

第一步:打开Microsoft Office Access软件,点击“空白数据库”;

VC++对Access数据库的操作(查询、插入、更新、删除等)

第二步:设置预创建空白数据库的文件名和文件类型(文件名:point32.mdb,文件类型:Microsoft Office Access 2000 数据库(*.mdb));

VC++对Access数据库的操作(查询、插入、更新、删除等)

第三步:“创建”空白数据库

VC++对Access数据库的操作(查询、插入、更新、删除等)

第四步:为该数据库“设置数据库密码”(本例中密码设置为:1234);

VC++对Access数据库的操作(查询、插入、更新、删除等)

第五步:在该数据库中创建一张表,例如:TestTab(编号,姓名,性别,年龄);

VC++对Access数据库的操作(查询、插入、更新、删除等)

第六步:表创建完成后,保存并关闭数据库,然后将该数据库文件(point32.mdb)剪切到你的VC++程序debug或release目录中,则准备工作完成。

其次,在VC++ MFC中编写对该数据库TestTab表进行数据查询插入更新删除操作的方法:

(1)导入才用ado方式访问Access数据库所需的DLL

#import "C:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")//ado访问ACCESS<strong>数据库</strong>必需
Salin selepas log masuk

(2)在程序的入口函数中,初始化OLE以支持应用程序

AfxOleInit();
Salin selepas log masuk

(3)获取应用程序(EXE)所在路径

CString path;//应用程序所在路径
char filepath[256];
char* pPath; 
GetModuleFileName(AfxGetInstanceHandle(),filepath,256);
pPath  = strrchr(filepath,'\\');
*pPath = 0;
path = filepath;
Salin selepas log masuk

(4)创建数据库访问连接字符串

char* PtConnectStr;//<strong>数据库</strong>连接字符串
CString connstr =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
connstr += path;
connstr += "\\point32.mdb";
connstr += ";Jet OLEDB:Database Password='1234'";
PtConnectStr = connstr.GetBuffer(0);
Salin selepas log masuk

(5)查询TestTab表中数据方法实现
//<strong>查询</strong>表中数据,并显示在List Control控件中
void CPoint32Dlg::ReadUserInfo()
{
	//select
	m_list.DeleteAllItems();//清空列表

	_ConnectionPtr m_pConnection;
	_RecordsetPtr m_pRecordset;

	try
	{
		m_pConnection.CreateInstance(__uuidof(Connection));
		m_pConnection->Open(PtConnectStr,"","",adModeUnknown);
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("<strong>数据库</strong>连接失败.\r错误信息:%s",e.ErrorMessage());
		//AfxMessageBox(errormessage);
		MessageBox(errormessage,"连接失败",MB_ICONEXCLAMATION);
		if(m_pConnection->State)
			m_pConnection->Close();
		return;
	}

	try
	{

		//获取数据,放在数据集中
		CString cmd;
		cmd.Format("SELECT * FROM TestTab");

		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(cmd.GetBuffer(),
			_variant_t((IDispatch*)m_pConnection,true),
			adOpenStatic,
			adLockOptimistic,
			adCmdText);

		//处理数据,并显示
		_variant_t varbuffer;
		long index = 0;//注意:必须是long类型
		int countItem = 0;
		CString str;

		while(!m_pRecordset->adoEOF)
		{
			index = 0;
			//读ID号
			varbuffer = m_pRecordset->GetCollect(_variant_t(index));			
			if(varbuffer.vt!=VT_NULL)
			{
				str.Format("%d",varbuffer.lVal);
				m_list.InsertItem(countItem,str.GetBuffer());
			}
			//读其它的信息
			while(index GetCollect(_variant_t(index));
				if(varbuffer.vt!=VT_NULL)
				{
					str = (LPCTSTR)(_bstr_t)varbuffer;
					m_list.SetItemText(countItem,index,str.GetBuffer());
				}
			}

			m_pRecordset->MoveNext();
			countItem++;
		}
	}
	catch(_com_error &e)
	{
		//AfxMessageBox(e.Description());
		MessageBox(e.Description(),"<strong>数据库</strong><strong>操作</strong>失败.",MB_ICONEXCLAMATION);
		if(m_pRecordset->State)
			m_pRecordset->Close();
		if(m_pConnection->State)
			m_pConnection->Close();
		return;
	}

	if(m_pRecordset->State)
		m_pRecordset->Close();
	if(m_pConnection->State)
		m_pConnection->Close();
}
Salin selepas log masuk

(6)向TestTab表中插入数据方法实现
//向表中<strong>插入</strong>数据,并<strong>更新</strong>List Control控件中显示的数据
void CPoint32Dlg::OnBnClickedButton1()
{
	//insert
	_ConnectionPtr m_pConnection;
	_variant_t RecordsAffected;
	try
	{
		m_pConnection.CreateInstance(__uuidof(Connection));
		m_pConnection->Open(PtConnectStr,"","",adModeUnknown);
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("<strong>数据库</strong>连接失败.\r错误信息:%s",e.ErrorMessage());
		MessageBox(errormessage,"       添加失败       ",MB_ICONEXCLAMATION);
		return;
	}
	try
	{
		CString strCmd="INSERT INTO TestTab(UName,UGender,UAge) VALUES('测试者','男','30')";

		for(int i=0;iExecute(strCmd.AllocSysString(),&RecordsAffected,adCmdText);
		}
	}
	catch(_com_error &e)
	{
		//AfxMessageBox(e.Description());
		MessageBox(e.Description(),"       添加失败       ",MB_ICONEXCLAMATION);
		if(m_pConnection->State)
			m_pConnection->Close();
		return;
	}
	if(m_pConnection->State)
		m_pConnection->Close();
	//MessageBox("添加成功!","消息");

	m_update.EnableWindow(TRUE);
	m_delete.EnableWindow(TRUE);

	ReadUserInfo();
}
Salin selepas log masuk

(7)更新TestTab表中数据方法实现
//<strong>更新</strong>表中数据,并<strong>更新</strong>List Control控件的显示
void CPoint32Dlg::OnBnClickedButton3()
{
	// update
	_ConnectionPtr m_pConnection;
	_variant_t RecordsAffected;
	try
	{
		m_pConnection.CreateInstance(__uuidof(Connection));
		m_pConnection->Open(PtConnectStr,"","",adModeUnknown);
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("<strong>数据库</strong>连接失败.\r错误信息:%s",e.ErrorMessage());
		MessageBox(errormessage,"       修改失败       ",MB_ICONEXCLAMATION);
		return;
	}
	try
	{
		CString strCmd="UPDATE TestTab SET [UGender]='女',[UAge]='20' WHERE [UName]='测试者'";

		m_pConnection->Execute(strCmd.AllocSysString(),&RecordsAffected,adCmdText);
	}
	catch(_com_error &e)
	{
		//AfxMessageBox(e.Description());
		MessageBox(e.Description(),"       修改失败       ",MB_ICONEXCLAMATION);
		if(m_pConnection->State)
			m_pConnection->Close();
		return;
	}
	if(m_pConnection->State)
		m_pConnection->Close();
	//MessageBox("修改成功!","消息");

	ReadUserInfo();
}
Salin selepas log masuk

(8)删除TestTab表中数据及重置表中自动编号主键(key)方法现实

//<strong>删除</strong>表中数据、重置自动编号(从1开始),并<strong>更新</strong>List Control控件显示
void CPoint32Dlg::OnBnClickedButton4()
{
	// delete
	_ConnectionPtr m_pConnection;
	_variant_t RecordsAffected;
	try
	{
		m_pConnection.CreateInstance(__uuidof(Connection));
		m_pConnection->Open(PtConnectStr,"","",adModeUnknown);
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("连接<strong>数据库</strong>失败!\r错误信息:%s",e.ErrorMessage());
		MessageBox(errormessage,"<strong>删除</strong>失败",MB_ICONEXCLAMATION);
		return;
	}
	try
	{
		//<strong>删除</strong>表中所有数据
		CString strCmd="DELETE FROM TestTab";

		m_pConnection->Execute(strCmd.AllocSysString(),&RecordsAffected,adCmdText);

		//重置表中自动编号ID,使其从1开始增加(必须先<strong>删除</strong>表中所有数据)
		strCmd="ALTER TABLE TestTab ALTER COLUMN ID COUNTER(1,1)";

		m_pConnection->Execute(strCmd.AllocSysString(),&RecordsAffected,adCmdText);
	}
	catch(_com_error &e)
	{
		//AfxMessageBox(e.Description());
		MessageBox(e.Description(),"<strong>删除</strong>失败",MB_ICONEXCLAMATION);
		if(m_pConnection->State)
			m_pConnection->Close();
		return;
	}
	if(m_pConnection->State)
		m_pConnection->Close();
	//MessageBox("<strong>删除</strong>成功!","完成");

	m_insert.EnableWindow(TRUE);
	m_update.EnableWindow(FALSE);
	m_delete.EnableWindow(FALSE);

	ReadUserInfo();
}
Salin selepas log masuk

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melumpuhkan aplikasi latar belakang dalam Windows 11_Windows 11 tutorial untuk melumpuhkan aplikasi latar belakang Bagaimana untuk melumpuhkan aplikasi latar belakang dalam Windows 11_Windows 11 tutorial untuk melumpuhkan aplikasi latar belakang May 07, 2024 pm 04:20 PM

1. Buka tetapan dalam Windows 11. Anda boleh menggunakan pintasan Win+I atau mana-mana kaedah lain. 2. Pergi ke bahagian Apl dan klik Apl & Ciri. 3. Cari aplikasi yang anda ingin halang daripada berjalan di latar belakang. Klik butang tiga titik dan pilih Pilihan Lanjutan. 4. Cari bahagian [Background Application Permissions] dan pilih nilai yang dikehendaki. Secara lalai, Windows 11 menetapkan mod pengoptimuman kuasa. Ia membolehkan Windows mengurus cara aplikasi berfungsi di latar belakang. Sebagai contoh, sebaik sahaja anda mendayakan mod penjimat bateri untuk mengekalkan bateri, sistem akan menutup semua apl secara automatik. 5. Pilih [Jangan sekali-kali] untuk menghalang aplikasi daripada berjalan di latar belakang. Sila ambil perhatian bahawa jika anda perasan bahawa program tidak menghantar pemberitahuan kepada anda, gagal mengemas kini data, dsb., anda boleh

Bagaimana untuk memadam sepenuhnya sejarah sembang TikTok Bagaimana untuk memadam sepenuhnya sejarah sembang TikTok May 07, 2024 am 11:14 AM

1. Buka apl Douyin, klik [Mesej] di bahagian bawah antara muka dan klik entri perbualan sembang yang perlu dipadamkan. 2. Tekan lama mana-mana rekod sembang, klik [Multiple Select], dan semak rekod sembang yang ingin anda padamkan. 3. Klik butang [Padam] di penjuru kanan sebelah bawah dan pilih [Sahkan pemadaman] dalam tetingkap pop timbul untuk memadam rekod ini secara kekal.

Cara menukar pdf deepseek Cara menukar pdf deepseek Feb 19, 2025 pm 05:24 PM

DeepSeek tidak dapat menukar fail terus ke PDF. Bergantung pada jenis fail, anda boleh menggunakan kaedah yang berbeza: dokumen biasa (Word, Excel, PowerPoint): Gunakan Microsoft Office, LibreOffice dan perisian lain untuk dieksport sebagai PDF. Imej: Simpan sebagai PDF Menggunakan Image Viewer atau Perisian Pemprosesan Imej. Halaman Web: Gunakan fungsi "Print Into PDF" penyemak imbas atau laman web yang berdedikasi ke alat PDF. Format yang tidak biasa: Cari penukar yang betul dan tukarnya ke PDF. Adalah penting untuk memilih alat yang betul dan membangunkan pelan berdasarkan keadaan sebenar.

Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan Jun 18, 2024 pm 04:49 PM

Komputer rakan mempunyai kesalahan sedemikian Apabila membuka "PC ini" dan fail pemacu C, ia akan menggesa "Explorer.EXE Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan. Anda mungkin tidak mempunyai kebenaran yang sesuai untuk mengakses projek. " Termasuk folder, fail, Komputer ini, Tong Kitar Semula, dsb., klik dua kali akan muncul tetingkap sedemikian, tetapi adalah perkara biasa untuk membukanya dengan mengklik kanan. Ini disebabkan oleh kemas kini sistem Jika anda juga menghadapi situasi ini, editor di bawah akan mengajar anda cara menyelesaikannya. 1. Buka editor pendaftaran Win+R dan masukkan regedit, atau klik kanan menu mula untuk menjalankan dan masukkan regedit 2. Cari registri "Computer\HKEY_CLASSES_ROOT\PackagedCom\ClassInd";

Windows menjeda kemas kini secara kekal, Windows mematikan kemas kini automatik Windows menjeda kemas kini secara kekal, Windows mematikan kemas kini automatik Jun 18, 2024 pm 07:04 PM

Kemas kini Windows mungkin menyebabkan beberapa masalah berikut: 1. Isu keserasian: Sesetengah aplikasi, pemacu atau peranti perkakasan mungkin tidak serasi dengan kemas kini Windows baharu, menyebabkan ia tidak berfungsi dengan betul atau ranap. 2. Isu prestasi: Kadangkala, kemas kini Windows boleh menyebabkan sistem menjadi lebih perlahan atau mengalami kemerosotan prestasi. Ini mungkin disebabkan oleh ciri baharu atau penambahbaikan yang memerlukan lebih banyak sumber untuk dijalankan. 3. Isu kestabilan sistem: Sesetengah pengguna melaporkan bahawa selepas memasang kemas kini Windows, sistem mungkin mengalami ranap yang tidak dijangka atau ralat skrin biru. 4. Kehilangan data: Dalam kes yang jarang berlaku, kemas kini Windows boleh menyebabkan kehilangan data atau kerosakan fail. Inilah sebabnya sebelum membuat sebarang kemas kini penting, sandarkan anda

Bagaimana untuk membaca fail dbf dalam oracle Bagaimana untuk membaca fail dbf dalam oracle May 10, 2024 am 01:27 AM

Oracle boleh membaca fail dbf melalui langkah-langkah berikut: buat jadual luaran dan rujuk fail dbf untuk mendapatkan semula data yang diimport ke dalam jadual Oracle;

Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Jun 04, 2024 pm 01:42 PM

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak Jul 18, 2024 am 05:48 AM

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

See all articles