MFC连接ACCESS(ADO)增,删,改

很多谢前辈网上的经验分享。

其实很早之前就操作成功,因为中间又去看了一下js,对本来就业余的新手的我现在是有点忘记了我这里整理当笔记记录下来。也可供还在为增,删,改无从下手又刚好有缘看到的朋友一个参考。

前面已经有一篇写过ADO连接数据库这里就不重复记录了。

首先操作数据库的增加。

_variant_t tem;
try
{
	/* 打开本地Access库 */
	m_pConnection.CreateInstance( __uuidof( Connection ) );
	m_pConnection->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Jet OLEDB:Database Password=", "", "", adModeUnknown );
}
catch( _com_error e )
{
	AfxMessageBox( "数据库连接失败,确认数据库是否在当前路径下!" );
}
/* AfxMessageBox("数据库连接成功!"); */
m_pRecordset.CreateInstance( __uuidof( Recordset ) );
m_pRecordset->Open( "select * from table", m_pConnection.GetInterfacePtr(),
                    
		    adOpenDynamic,
		    adLockOptimistic,
		    adCmdText );
if ( !m_pRecordset->BOF )
{
	m_pRecordset->MoveFirst();
}
/*
 * else
 *  {
 *   AfxMessageBox("表内数据为空");
 *   return;
 *  }
 */

while ( !m_pRecordset->adoEOF )
{
	if ( tem.vt != VT_NULL )
	{
		tem	= m_pRecordset->GetCollect( "name" );
		id	= (LPCSTR) _bstr_t( tem );//好麻烦要转数据类型
	}

	if ( m_uid == id )
	{
		flag = 1;
		break;
	}
	m_pRecordset->MoveNext();
}

if ( flag != 1 )
{
	try {//这里就是增数据
		m_pRecordset->AddNew();
		m_pRecordset->PutCollect( "name", _variant_t( m_uid ) );
		m_pRecordset->PutCollect( "pwd", _variant_t( m_upw ) );
		m_pRecordset->Update();
		AfxMessageBox( "添加成功" );
	}
	catch( _com_error e )
	{
		AfxMessageBox( "添加失败" );
	}
}else  {
	AfxMessageBox( "已有相同帐号" );//限制不能增加相同帐号
}
m_pRecordset->Close();
m_pRecordset = NULL;

然后是修改。前面那一段都一样的,就改一下添加那里的语句。

  try {//这是修改
		m_pRecordset->MoveFirst();
		m_pRecordset->Move( i );
		m_pRecordset->PutCollect( "name", _variant_t( id ) );
		m_pRecordset->PutCollect( "pwd", _variant_t( pw ) );
		m_pRecordset->Update();
	}
	catch( _com_error e )
	{
		AfxMessageBox( "修改失败" );
	}
AfxMessageBox( "修改成功" );

删除也一样。前面那一段都一样的,就改一下那里的语句。

try {
	m_pRecordset->MoveFirst();
	m_pRecordset->Move( i );
	m_pRecordset->Delete( adAffectCurrent );
	m_pRecordset->Update();
}
catch( _com_error e )
{
	AfxMessageBox( "删除失败" );
}

AfxMessageBox( "删除成功" );

以上就是vc ado连access的增,删,改操作。ADO连别的数据操作也差不多吧?

转载于:https://my.oschina.net/oisanblog/blog/749645

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值