一:Vs2012連接數據庫後,無法新建查詢,出現如下情況:
解決辦法:下載與vs2012相兼容的sql sever data tools。
下載鏈接:https://msdn.microsoft.com/zh-cn/data/hh297027。
二:MFC訪問數據庫
1:導入ADO動態鏈接庫,在stdafx.h文件中添加如下:
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2:查詢過程舉例
void CScoreAlysisDlg::OnBnClickedBtncheck()
{
// TODO: 在此添加控件通知處理程序代碼
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));
//pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs";
try{
pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;integrated security=SSPI;Initial Catalog=zhibenjiaoyu;";
pConn->Open("","","",adConnectUnspecified);
}
catch(_com_error e)
{
AfxMessageBox(_T("數據庫初始化錯誤!"));
return ;
}
pRst=pConn->Execute("select * from dbo.Sheet1$ where 年份=2010",NULL,adCmdText);
//pRst->Open("select * from authors",_variant_t((IDispatch*)pConn),
//adOpenDynamic,adLockOptimistic,adCmdText);
/*pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="select * from authors";
pRst=pCmd->Execute(NULL,NULL,adCmdText);
*/
// AfxMessageBox(_T("數據庫初始化成功!"));
while(!pRst->adoEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("學校名稱地區名稱"));
pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();
}
注意:清除列表框的內容((CListBox*)GetDlgItem(IDC_LIST1))->ResetContent(); //清空列表框的內容