MFC实现数据库的基本操作

CDaoDatabase db; //数据库
CDaoRecordset Dbset(&db);//记录集,有了它才能进行读写以及删除

read()
{
	CString  Filepath = "Data.md";
	CFileFind Ffind;
	BOOL flag = Ffind.FindFile(Filepath);
	Ffind.Close();
	if (!flag)
	{
		db.Creat(Filepath);
		// 创建内部表,并设置两个属性(姓名, 年龄)
		CString aqlcmd = "CREATE TABLE DataTable(Name VARCHAR(20), Age VARCHAR(3))";
		db.Execute(aqlcmd);//执行sql指令
		db.Close();//创建完成一定要关闭,负责出错
		MessageBox("创建完成!");
	}
	_variant_t varname;
	COleVariant varage;
	CString Sname, Sage;
	db.Open(Filepath);
	Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM DataTable", 0);
	while(!Dbset.isEOF())
	{
		varname = Dbset.GetFieldValue("Name");
		Dbset.GetFieldValue("Age", varage);
		//分别把数据库里面读书来的数据转换为CString类型
		Sname = (LPTSTR)_bstr_t(varname);
		Sage = (LPTSTR)varage.pbstrVal;
		Dbset.MoveNext();//移动到下一行
	}
	Dbset.Close();
	db.Close();
}

add()
{
	UpdataData(TRUE);
	CString  Filepath = "Data.md";
	db.Open(Filepath);
	Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM DataTable", 0);
	Dbset.AddNew(); //在记录集的队尾添加
	Dbset.SetFieldValue("Name", _variant_t("姓名哈哈"));
	//将CString格式转化为数据库的规定格式
	Dbset.SetFieldValue("Age", atol("年龄哈哈"));
	Dbset.Update();//及时更新
	Dbset.Close();
	db.Close();
}

del()
{
	UpdataData(TRUE);
	CString  Filepath = "Data.md";
	db.Open(Filepath);
	Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM DataTable", 0);
	Dbset.Move("要删除的行号")
	Dbset.Close();
	db.Close();

}

modify()
{
	UpdataData(TRUE);
	CString  Filepath = "Data.md";
	db.Open(Filepath);
	Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM DataTable", 0);	
	Dbset.Move("要修改的行号");
	Dbset.Edit();	//将数据至于可以编辑状态
	Dbset.SetFieldValue("Name", _variant_t("名字"));
	Dbset.SetFieldValue("Age", atol("年龄"));
	Dbset.Update();	//恢复更新
	Dbset.Close();
	db.Close();
}

你可能感兴趣的:(MFC)