vs使用mfc更改access中的数据
时间: 2023-07-16 16:17:07 浏览: 53
要使用 MFC 更改 Access 中的数据,你需要使用 MFC 的数据库类和 ODBC 驱动程序。下面是一个简单的示例,演示如何使用 MFC 对 Access 数据库进行增删改查操作:
1. 首先,在你的 MFC 应用程序中添加一个数据库类。右键单击项目,选择“添加”->“类”,然后选择“数据库”类。
2. 在你的数据库类中添加以下代码,以连接到 Access 数据库:
```
BOOL CMyDatabase::Open()
{
CString sDriver = _T("Microsoft Access Driver (*.mdb)");
CString sFile = _T("C:\\mydatabase.mdb");
CString sDsn;
sDsn.Format(_T("ODBC;DRIVER={%s};DSN='';DBQ=%s"), sDriver, sFile);
if (!CDatabase::OpenEx(sDsn, CDatabase::noOdbcDialog))
{
return FALSE;
}
return TRUE;
}
```
其中,sFile 是你的 Access 数据库文件的路径。
3. 添加以下代码,以执行增删改查操作:
```
BOOL CMyDatabase::AddRecord(const CString& sName, const CString& sAddress)
{
CString strSQL;
strSQL.Format(_T("INSERT INTO MyTable (Name, Address) VALUES ('%s', '%s')"), sName, sAddress);
try
{
ExecuteSQL(strSQL);
return TRUE;
}
catch(CDBException* e)
{
TRACE(_T("Error: %s\n"), e->m_strError);
e->Delete();
return FALSE;
}
}
BOOL CMyDatabase::UpdateRecord(int nID, const CString& sName, const CString& sAddress)
{
CString strSQL;
strSQL.Format(_T("UPDATE MyTable SET Name = '%s', Address = '%s' WHERE ID = %d"), sName, sAddress, nID);
try
{
ExecuteSQL(strSQL);
return TRUE;
}
catch(CDBException* e)
{
TRACE(_T("Error: %s\n"), e->m_strError);
e->Delete();
return FALSE;
}
}
BOOL CMyDatabase::DeleteRecord(int nID)
{
CString strSQL;
strSQL.Format(_T("DELETE FROM MyTable WHERE ID = %d"), nID);
try
{
ExecuteSQL(strSQL);
return TRUE;
}
catch(CDBException* e)
{
TRACE(_T("Error: %s\n"), e->m_strError);
e->Delete();
return FALSE;
}
}
BOOL CMyDatabase::GetRecord(int nID, CString& sName, CString& sAddress)
{
CString strSQL;
strSQL.Format(_T("SELECT Name, Address FROM MyTable WHERE ID = %d"), nID);
try
{
CRecordset rs(this);
rs.Open(CRecordset::forwardOnly, strSQL);
if (rs.GetRecordCount() == 0)
{
return FALSE;
}
rs.GetFieldValue(_T("Name"), sName);
rs.GetFieldValue(_T("Address"), sAddress);
rs.Close();
return TRUE;
}
catch(CDBException* e)
{
TRACE(_T("Error: %s\n"), e->m_strError);
e->Delete();
return FALSE;
}
}
```
其中,MyTable 是你的 Access 数据库中的表名。
4. 调用上述函数,以执行相应的操作。例如:
```
CMyDatabase db;
if (db.Open())
{
// 添加记录
db.AddRecord(_T("John Doe"), _T("123 Main St."));
// 修改记录
db.UpdateRecord(1, _T("Jane Doe"), _T("456 Elm St."));
// 删除记录
db.DeleteRecord(2);
// 获取记录
CString sName, sAddress;
if (db.GetRecord(1, sName, sAddress))
{
TRACE(_T("Name: %s\nAddress: %s\n"), sName, sAddress);
}
}
db.Close();
```
注意,上述代码仅供参考,并且可能需要根据你的实际情况进行修改。此外,还需要确保你的 Access 数据库已正确设置,并且你的 ODBC 驱动程序已正确安装。