用vs2008的vc++连接sql server2008数据库

时间:2021-12-08 13:38:29
Visual C++ SQL Server vs2008

8 个解决方案

#1


百度下 "ADO"

#2


留个邮箱,我有一个自己总结写的c++ ADO连接数据库的类,发给你参考参考

#3


lj2zj1989@163.com

#4


引用 3 楼 longwenbinshishadan 的回复:
lj2zj1989@163.com


已经发送了,请接收

#5


有问题可以交流

#6


用vs2008的vc++连接sql server2008数据库

#7


我连好了 谢谢  但是有新问题 就是我想用一个combo Box 点击button查询符合条件的数据 显示在listcontrol中 我写的代码显示不出来
void CtestAccessDlg::OnBnClickedButton5()
{
        CString key;
CString sql; 
CoInitialize(NULL);
int i=0;

GetDlgItem(IDC_COMBO1)->GetWindowText(key);
   
if(key==""){

   AfxMessageBox(L"请输入查询字段");
}
else{

sql.Format(L"SELECT * FROM ModInfo WHERE Station=%d",key);
BSTR str=sql.AllocSysString();

m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(str,
_variant_t((IDispatch*)m_pConnection,true),
adOpenStatic,
adLockOptimistic,
adCmdText);

while(!this->m_pRecordset->adoEOF)
{
//CString strPNum,strNModNum,strVol,strCur,strTemp,strStation,strID;
_variant_t pnum,modnum,vol,cur,temp,station,mid;

pnum=m_pRecordset->GetCollect("PNum");
modnum=m_pRecordset->GetCollect("NModNum");
vol=m_pRecordset->GetCollect("Vol");
cur=m_pRecordset->GetCollect("Cur");
temp=m_pRecordset->GetCollect("Temp");
station=m_pRecordset->GetCollect("Station");
mid=m_pRecordset->GetCollect("ID");



m_DB_List.InsertItem(i, L"VC++"); //插入行
m_DB_List.SetItemText(i,0,pnum); //设置数据
m_DB_List.SetItemText(i,1,modnum);
m_DB_List.SetItemText(i,2,vol);
m_DB_List.SetItemText(i,3,cur);
m_DB_List.SetItemText(i,4,temp);
m_DB_List.SetItemText(i,5,station);
m_DB_List.SetItemText(i,6,mid);


m_pRecordset->MoveNext();
i++;
}
m_pRecordset->Close();
m_pRecordset=NULL;

}
我能取到key的值 但是只能显示数据库全部的内容,但是不能显示key值的内容?那个我看有的写的是m_pConnection->Execute 我感觉我写的open不太对

#8


大神 也给我发一份呗  654995150@qq.com

#1


百度下 "ADO"

#2


留个邮箱,我有一个自己总结写的c++ ADO连接数据库的类,发给你参考参考

#3


lj2zj1989@163.com

#4


引用 3 楼 longwenbinshishadan 的回复:
lj2zj1989@163.com


已经发送了,请接收

#5


有问题可以交流

#6


用vs2008的vc++连接sql server2008数据库

#7


我连好了 谢谢  但是有新问题 就是我想用一个combo Box 点击button查询符合条件的数据 显示在listcontrol中 我写的代码显示不出来
void CtestAccessDlg::OnBnClickedButton5()
{
        CString key;
CString sql; 
CoInitialize(NULL);
int i=0;

GetDlgItem(IDC_COMBO1)->GetWindowText(key);
   
if(key==""){

   AfxMessageBox(L"请输入查询字段");
}
else{

sql.Format(L"SELECT * FROM ModInfo WHERE Station=%d",key);
BSTR str=sql.AllocSysString();

m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(str,
_variant_t((IDispatch*)m_pConnection,true),
adOpenStatic,
adLockOptimistic,
adCmdText);

while(!this->m_pRecordset->adoEOF)
{
//CString strPNum,strNModNum,strVol,strCur,strTemp,strStation,strID;
_variant_t pnum,modnum,vol,cur,temp,station,mid;

pnum=m_pRecordset->GetCollect("PNum");
modnum=m_pRecordset->GetCollect("NModNum");
vol=m_pRecordset->GetCollect("Vol");
cur=m_pRecordset->GetCollect("Cur");
temp=m_pRecordset->GetCollect("Temp");
station=m_pRecordset->GetCollect("Station");
mid=m_pRecordset->GetCollect("ID");



m_DB_List.InsertItem(i, L"VC++"); //插入行
m_DB_List.SetItemText(i,0,pnum); //设置数据
m_DB_List.SetItemText(i,1,modnum);
m_DB_List.SetItemText(i,2,vol);
m_DB_List.SetItemText(i,3,cur);
m_DB_List.SetItemText(i,4,temp);
m_DB_List.SetItemText(i,5,station);
m_DB_List.SetItemText(i,6,mid);


m_pRecordset->MoveNext();
i++;
}
m_pRecordset->Close();
m_pRecordset=NULL;

}
我能取到key的值 但是只能显示数据库全部的内容,但是不能显示key值的内容?那个我看有的写的是m_pConnection->Execute 我感觉我写的open不太对

#8


大神 也给我发一份呗  654995150@qq.com