- UID
- 34598
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-3-10
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2003-4-15 11:45:39
|
显示全部楼层
我的原代码:
BOOL MyMfc::OnInitDialog()
{
SetDialogName("MyMfcSample:MyMfc");
CAcUiDialog::OnInitDialog();
// 初始化COM,创建ADO连接等操作
AfxOleInit();
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
CString strErrorMessage;
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ValueDb.mdb","","",adModeUnknown);///连接数据库
}
}
catch(_com_error e)
{
strErrorMessage.Format("连接数据库失败,确认数据库 ValueDb.mdb 是否在当前路径下!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(strErrorMessage);///显示错误信息
return false;
}
// 使用ADO创建数据库记录集
try
{
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
}
catch(_com_error e)
{
strErrorMessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(strErrorMessage);///显示错误信息
return false;
}
try
{
m_pRecordset->Open("SELECT * FROM Values", m_pConnection.GetInterfacePtr(), adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
strErrorMessage.Format("读取数据库记录失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(strErrorMessage);///显示错误信息
return false;
}
_variant_t var;
CString strName,strValues;
// 清空列表框
m_AccessList.ResetContent();
strName=strValues="";
try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return false;
}
// 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("ValuesName");
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("Values");
if(var.vt != VT_NULL)
strValues = (LPCSTR)_bstr_t(var);
m_AccessList.AddString( strName + " --> "+strValues );
m_pRecordset->MoveNext();
}
// 默认列表指向第一项,同时移动记录指针并显示
m_AccessList.SetCurSel(0);
}
catch(_com_error e)
{
strErrorMessage.Format("读取数据库记录失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(strErrorMessage);///显示错误信息
return false;
}
return TRUE; // return TRUE unless you set the focus to a control
} |
|