那位高手指教一下这样行吗?
BOOL CTcsDlg::OnInitDialog()
{
//在这里面添加连接数据表的代码怎么写????假设数据表名:车辆出入信息,数据库名:CarMS
}
void CTcsDlg::OnBrowse()
{
void CCarMSDlg::OnButtonBrower()
{
// TODO: Add your control notification handler code here
m_display.DeleteAllItems();
_variant_t var;
CString strTime,
strState;
strCartype;
strCarnum;
strUsernum;
strTime =strState ==strCartype=strCarnum=strUsernum= ""; try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
} // 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("时间");
if(var.vt != VT_NULL)
strTime = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("状态");
if(var.vt!=VT_NULL)
strState = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("车型");
if(var.vt != VT_NULL)
strCartype = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("车牌号");
if(var.vt != VT_NULL)
strCarnum = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("车主代码");
if(var.vt != VT_NULL)
strUsernum = (LPCSTR)_bstr_t(var); strTime.TrimRight();
strUsernum.TrimLeft(); int nCount = m_display.GetItemCount();
int nItem = m_display.InsertItem(nCount,_T("")); m_display.SetItemText(nItem,0,strTime);
m_display.SetItemText(nItem,1,strState);
m_display.SetItemText(nItem,2,strCartype);
m_display.SetItemText(nItem,3,strCarnum);
m_display.SetItemText(nItem,4,strUsernum ); m_pRecordset->MoveNext();
} // 默认列表指向第一项,同时移动记录指针并显示
// m_list.SetCurSel(0);
// OnSelchangeListaccess();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
BOOL CTcsDlg::OnInitDialog()
{
//在这里面添加连接数据表的代码怎么写????假设数据表名:车辆出入信息,数据库名:CarMS
}
void CTcsDlg::OnBrowse()
{
void CCarMSDlg::OnButtonBrower()
{
// TODO: Add your control notification handler code here
m_display.DeleteAllItems();
_variant_t var;
CString strTime,
strState;
strCartype;
strCarnum;
strUsernum;
strTime =strState ==strCartype=strCarnum=strUsernum= ""; try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
} // 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("时间");
if(var.vt != VT_NULL)
strTime = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("状态");
if(var.vt!=VT_NULL)
strState = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("车型");
if(var.vt != VT_NULL)
strCartype = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("车牌号");
if(var.vt != VT_NULL)
strCarnum = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("车主代码");
if(var.vt != VT_NULL)
strUsernum = (LPCSTR)_bstr_t(var); strTime.TrimRight();
strUsernum.TrimLeft(); int nCount = m_display.GetItemCount();
int nItem = m_display.InsertItem(nCount,_T("")); m_display.SetItemText(nItem,0,strTime);
m_display.SetItemText(nItem,1,strState);
m_display.SetItemText(nItem,2,strCartype);
m_display.SetItemText(nItem,3,strCarnum);
m_display.SetItemText(nItem,4,strUsernum ); m_pRecordset->MoveNext();
} // 默认列表指向第一项,同时移动记录指针并显示
// m_list.SetCurSel(0);
// OnSelchangeListaccess();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
连接数据库,参考
http://www.pconline.com.cn/pcedu/empolder/gj/vc/0507/653859.html
呵呵,楼主不会用google之类的?
数据较多的话用报表
方便也不容易出错
{
m_pRecordset.CreateInstance(__uuidof(Recordset)); try
{
m_pRecordset->Open("SELECT * FROM CarMS", // 查询DemoTable表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}添加以上代码后编译出现这样的问题?怎么改?D:\CarMS\CarMSDlg.cpp(141) : error C2065: 'theApp' : undeclared identifier
D:\CarMS\CarMSDlg.cpp(141) : error C2228: left of '.m_pConnection' must have class/struct/union type
D:\CarMS\CarMSDlg.cpp(141) : error C2228: left of '.GetInterfacePtr' must have class/struct/union type
D:\CarMS\CarMSDlg.cpp(239) : error C2018: unknown character '0xa1'
D:\CarMS\CarMSDlg.cpp(239) : error C2018: unknown character '0xa1'
D:\CarMS\CarMSDlg.cpp(239) : error C2018: unknown character '0xa1'
D:\CarMS\CarMSDlg.cpp(239) : error C2018: unknown character '0xa1'
D:\CarMS\CarMSDlg.cpp(246) : warning C4800: 'const char *' : forcing value to bool 'true' or 'false' (performance warning)
D:\CarMS\CarMSDlg.cpp(246) : error C2106: '=' : left operand must be l-value
Error executing cl.exe.
'0xa1'好像是全角的空格。删了就可以了。
theApp.m_pConnection.GetInterfacePtr()这句要看你的m_pConnection的定义位置才好说怎么改。
public:
// 定义ADO连接、命令、记录集变量指针
_ConnectionPtr m_pConnection;
_CommandPtr m_pCommand;
_RecordsetPtr m_pRecordset;
那怎么改啊?
---〉m_pConnection.GetInterfacePtr()