VC++数据库通用模块开发:数据显示[组图](4)
//超时检查 m_pConnection-ConnectionTimeout = 8; m_pConnection-PutCursorLocation(adUseClient); m_pConnection-Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DataDisp2.mdb", "", "", adModeUnknow
//超时检查
m_pConnection->ConnectionTimeout = 8;
m_pConnection->PutCursorLocation(adUseClient);
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=DataDisp2.mdb", "", "", adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
try
{
//初始化记录集对象
m_pRecordset.CreateInstance("ADODB.Recordset");
//打开记录集
m_pRecordset->Open("SELECT * FROM BALANCE",_variant_t((IDispatch
*)m_pConnection,true), adOpenDynamic, adLockPessimistic, adCmdText);
}
catch(_com_error e)//捕捉异常
{
CString temp;
temp.Format("aaa连接数据库错误信息:%s",e.ErrorMessage());
AfxMessageBox(temp);
return 0;
}
//绑定数据源
m_dbTest.SetRefDataSource(NULL);
m_dbTest.SetRefDataSource((LPUNKNOWN)m_pRecordset);
m_dbTest.SetColumnHeaders(2) ;
//设置列宽与列头
_variant_t vIndex;
vIndex = long(0);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(50);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("姓名");
vIndex = long(1);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(50);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("收入");
vIndex = long(2);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(50);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("支出");
vIndex = long(3);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(30);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("余额");
vIndex = long(4);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(30);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("时间");
//显示更新
m_dbTest.Refresh();
return TRUE;
}
m_pConnection->ConnectionTimeout = 8;
m_pConnection->PutCursorLocation(adUseClient);
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=DataDisp2.mdb", "", "", adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
try
{
//初始化记录集对象
m_pRecordset.CreateInstance("ADODB.Recordset");
//打开记录集
m_pRecordset->Open("SELECT * FROM BALANCE",_variant_t((IDispatch
*)m_pConnection,true), adOpenDynamic, adLockPessimistic, adCmdText);
}
catch(_com_error e)//捕捉异常
{
CString temp;
temp.Format("aaa连接数据库错误信息:%s",e.ErrorMessage());
AfxMessageBox(temp);
return 0;
}
//绑定数据源
m_dbTest.SetRefDataSource(NULL);
m_dbTest.SetRefDataSource((LPUNKNOWN)m_pRecordset);
m_dbTest.SetColumnHeaders(2) ;
//设置列宽与列头
_variant_t vIndex;
vIndex = long(0);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(50);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("姓名");
vIndex = long(1);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(50);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("收入");
vIndex = long(2);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(50);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("支出");
vIndex = long(3);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(30);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("余额");
vIndex = long(4);
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(30);
m_dbTest.GetColumns().GetItem(vIndex).SetCaption("时间");
//显示更新
m_dbTest.Refresh();
return TRUE;
}
至此就实现用表格显示数据库中的数据,但是这个程序的功能很有限,只能显示数据,不能对表格中的数据进行编辑。接下来介绍几种常用的表格编辑方法。
- 上一篇:VC++数据库通用模块开发:格式编辑
- 下一篇:VC++深入详解:构造函数[图]
收藏文章
精彩图集