vs2008 连接 access 数据库

VS2008 连接access数据库小结

一、工具

编程软件MicrosoftVisual Studio 2008

Microsoft office Access 2007

二、步骤

1.     用Microsoftoffice Access 2007建立数据库,设计好表或者先不设计表。

2.     另存为access 2003(直接存储为2007没有测试),此时后缀为.mdb。

3.     以建立的数据库名称demo.mdb,表名user,字段username,password为例详细说明。

4.     声明一个用来存储从数据库中选出来的数据的数据集(类),注意一个表对应一个数据集,数据集以CRecordset为基类。例如我声明的类名称为UserSet代码如下:

#include"stdafx.h"

#include"afxdb.h"

class CUserSet : publicCRecordset

{

public:

     CUserSet(CDatabase*pDatabase = NULL);

~CUserSet(void);

public:

      CString  m_username;

      CString  m_password;

           virtualCString GetDefaultConnect();    //Default connection string

      virtual CString GetDefaultSQL();       //Default SQL for Record set

      virtual void DoFieldExchange(CFieldExchange* pFX);  // RFX support

};

CUserSet::CUserSet(CDatabase*pdb)

:CRecordset(pdb)

{

      m_username = _T("");

      m_password =_T("");

}

CStringCUserSet::GetDefaultConnect()

{

return_T("ODBC;DSN=demo");      //注意此处的demo为数据库的名字去掉后缀

}

CStringCUserSet::GetDefaultSQL()

{

      return _T("[user]");                         //该数据集绑定的表的名称

}

voidCUserSet::DoFieldExchange(CFieldExchange* pFX)

{

//将变量与相应的数据库中表user中的字段绑定

           pFX->SetFieldType(CFieldExchange::outputColumn);

      RFX_Text(pFX, _T("[username]"), m_user);        

//注意此时表中字段username的数据类型为TEXT

//若字段的类型为bool,则为RFX_Bool

      RFX_Text(pFX, _T("[password]"), m_passwd);

}

CUserSet::~CUserSet(void)

{

}

至此就完成了数据集(类)的定义。

5.     连接数据库,函数如下:

SQLConfigDataSource(NULL,ODBC_ADD_DSN,

             "Microsoft Access Driver (*.mdb)",

             "DSN=demo\0"

             "Description=Hotel\0"

        "FileType=Access\0"

        "DBQ=.\\demo.mdb\0"  );

注意函数的参数,将该语句放到主文件下且执行一次,若返回true即表示数据库已经正确连接了。而第4步数据集的定义保证了对数据库的操作,便于数据的选取。

需包含头文件#include "odbcinst.h"

6.     一个从数据库demo中选取表user中所有数据的例子:

UserSetrecordset ;

CString strSQL;

UpdateData(TRUE);

strSQL="select * from user";

if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))

{

        MessageBox(“连接数据库失败”);

        return FALSE;

}     

recordset.Close();

 

 

注意:如果没有设计好表则与该表绑定的数据集将无法定义完成,或者说一点表的字段结构发生变化,则相应的数据集必须紧跟着变化。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值