mfcsql查詢
1. vc6 mfc sql怎樣設置關鍵詞查詢,根據關鍵詞確定要查詢的問題
GetDlgItem(IDC_EDIT1)->GetWindowText(str);//得到輸入的問題
strSql.Format("select answer from shuju where question like'%%%s%%'",str);
這是我的程序里的語句,他能實現模糊查詢,
但是我資料庫里的問題是今天天氣如何,如果在對話框中輸入 天氣怎麼樣,或者今天天氣咋樣,就不能出來答案。希望朋友們幫幫忙!謝謝!
2. MFC對話框界面, 查詢sql資料庫計算百分比,將結果顯示在list control中
class DBConnection
{
public:
DBConnection(void);
~DBConnection(void);
int OpenConnect(void);
int ExecuteSQL(_bstr_t strCmd);
_RecordsetPtr GetRecondSetPrt();
private:
_ConnectionPtr m_pConnection; //鏈接資料庫德指針變數
_RecordsetPtr m_pRecordset; //指向記錄集的指針
_variant_t RecordsAffected; //受影響的記錄條數
};
DBConnection::DBConnection(void)
{
m_pConnection=NULL;
m_pRecordset=NULL;
}
DBConnection::~DBConnection(void)
{
m_pConnection=NULL;
m_pRecordset=NULL;
}
//打開資料庫鏈接
int DBConnection::OpenConnect(void)
{
try
{
//創建連接對象
m_pConnection.CreateInstance("ADODB.Connection");
//設置連接字元串
_bstr_t strConnect ="Provider=SQLOLEDB;Data Source=20110121-1545\\SQLEXPRESS;\
Initial Catalog=ExpManDB;User ID=sa;PWD=123";
//設置連接超時時間為5秒
m_pConnection->ConnectionTimeout = 5;
//連接資料庫
m_pConnection->Open(strConnect, "", "", adModeUnknown);
return 1;
}
catch(_com_error e)
{
CString errorMsg;
errorMsg.Format(_T("連接資料庫失敗!\r錯誤信息:%s"),(LPCSTR)e.ErrorMessage());
AfxMessageBox(errorMsg);
return 0;
}
}
//返回受影響的記錄條數
int DBConnection::ExecuteSQL(_bstr_t strCmd)
{
if(m_pConnection->State)
{
try
{
m_pRecordset.CreateInstance("ADODB.Recordset"); //為Recordset對象創建實例
//執行SQL語句,並返回受影響的記錄條數
m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,adCmdText);
return RecordsAffected.intVal;
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
return 0;
}
}
return 0;
}
//返回記錄集以便後續使用
_RecordsetPtr DBConnection::GetRecondSetPrt()
{
return m_pRecordset;
}
可以像這樣使用,strCmd為sql語句
DBConnection dbConnector;
if(dbConnector.OpenConnect() == 0)
{
return;
}
if(dbConnector.ExecuteSQL((_bstr_t)strCmd) == 0)
{
return;
}
當然如果你還需要取出數據的時候可以這樣用
_RecordsetPtr pRecordSet;
pRecordSet=dbConnector.GetRecondSetPrt();
_variant_t vCardNo;
vCardNo = pRecordSet->GetCollect("cardNO"); //得到數據表種cardNO欄位
後面_variant_t類型就可以轉換為int float CString等各種類型了。
如果有什麼問題再交流。
3. mfc 中 用SQL查詢資料庫時無結果
strSQL.Format("SELECT * from BookInfo where %s = '%s'",name,temp); // BID 不需要 ' ' 進行包含
4. MFC中的SQL查詢語句返回空就報錯怎麼辦
我也遇到過你這樣的問題哦,
其實挺簡單的,你如果不想報錯,就要把資料庫中
該列的NULL去掉,什麼都不寫就是,MFC中在讀的時候,碰不到NULL,
它會什麼都不顯示,相當於_T(""),也就是讀到列表控制項中「sex」這列什麼都沒的。
試試吧,實在要留下NULL,也有判斷的辦法,我找到過,嫌麻煩沒用它,這個需要你去搜搜
5. VC++ MFC 的一個SQL查詢語句
CADODatabase m_DBCn;//資料庫對象
CADORecordset m_Rs;//記錄集對象
在頭文件里
public:
CADORecordset m_Rs;//新增變數
CADODatabase m_DBCn;//新增變數
CDataGRid m_datagrid;//DataGrid控制項對象
...
CString m_adodc; m_adodc.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;")
_T("Data Source=note.mdb"));
m_DBCn.Open((LPCTSTR)m_adodc); //打開程序資料庫
m_Rs.SetDatabase(&m_DBCn); m_Rs.Open(_T("select * from list where id=1;")); //執行查詢
m_datagrid.SetRefDataSource((LPUNKNOW)m_Rs.GetRecordset());//顯示在DataGrid控制項中
6. MFC從SQL里查詢表中欄位怎麼查
獲取所有欄位名:
Select Name FROM SysColumns Where id=Object_Id('TableName')