正在學習MFC,做了一個簡易的庫存資訊系統,用ADO連接Access后,其中的增加和修改功能都實作了串列和資料庫的同步更新的功能。但是實作洗掉的時候試了好幾種方法都不行。我的界面有一個“保存”按鈕,希望點擊保存按鈕時,把串列控制元件中的增刪改操作實時更新到資料庫中。求當洗掉串列某一行然后再同時更新到資料庫中的方法(在list串列中洗掉某行的操作我會),希望各位高手們指點一二。代碼如下
void CUserInfoDlg::OnBnClickedSave()
{
int nCount = m_list.GetItemCount();
CString sNumb,sName,sSex,sAge,sDept,sLevel,sPhone,sEmail,sFlag, sID;
CString sSql;
for(int i=0; i<nCount; i++ )
{
sNumb = m_list.GetItemText(i,0);
sName = m_list.GetItemText(i,1);
sSex = m_list.GetItemText(i,2);
sAge = m_list.GetItemText(i,3);
sDept = m_list.GetItemText(i,4);
sLevel = m_list.GetItemText(i,5);
sPhone = m_list.GetItemText(i,6);
sEmail = m_list.GetItemText(i,7);
sFlag = m_list.GetItemText(i,8);
sID = m_list.GetItemText(i,9);
if( sFlag == "N" ) //new user
{
sSql.Format("Insert into UserInfo (Code, UserName, \
Sex, Age, Branch, RightLevel, Phone, EMail)\
values ('%s', '%s', '%s', %d, '%s', %d, '%s', '%s')",
sNumb,sName,sSex,atoi(sAge),sDept,atoi(sLevel),sPhone,sEmail);
AfxMessageBox(sSql);
try
{
theApp.m_pConn->Execute(_bstr_t(sSql),NULL,adCmdText);
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
}
else if( sFlag == "M" ) //Modify user
{
AfxMessageBox(sID);
sSql.Format("Update UserInfo Set Code = '%s', UserName = '%s',\
Sex = '%s', Age = %d, Branch = '%s', RightLevel = %d,\
Phone = '%s', EMail = '%s' where id = %d",\
sNumb,sName,sSex,atoi(sAge),sDept,atoi(sLevel),sPhone,sEmail,atoi(sID));
AfxMessageBox(sSql);
try
{
theApp.m_pConn->Execute(_bstr_t(sSql),NULL,adCmdText);
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
}
}
}
uj5u.com熱心網友回復:
我在網上找的方法,不行啊,如下else if(sFlag == "D")
{
try
{
sSql.Format(_T("DELETE from UserInfo where id=%d"));
_variant_t RecordsAffected;
theApp.m_pConn->Execute(_bstr_t(sSql), &RecordsAffected, adCmdText);
AfxMessageBox(_T("洗掉成功!"));
}
catch (_com_error*e)
{
AfxMessageBox(e->ErrorMessage());
}
&RecordsAffected這個引數應該是代表要洗掉的行數吧,不是太理解這個引數哦
uj5u.com熱心網友回復:
用個sql陳述句去洗掉資料庫里對應的那條么,出錯了就看看你的sql陳述句是否正確uj5u.com熱心網友回復:
是的。我1樓貼出來的那個方法我試了下編譯運行沒問題,但是沒有洗掉作用。m_pConnection->Execute((_bstr_t)str, &RecordsAffected, adCmdText);
請問這句里面的 &RecordsAffected這個引數在我的程式里應該改成什么?
uj5u.com熱心網友回復:
sSql.Format(_T("DELETE * from UserInfo where id=%d"));uj5u.com熱心網友回復:
sSql.Format(_T("DELETE from UserInfo where id = %d"), 你的id啊);uj5u.com熱心網友回復:
sSql.Format(_T("DELETE * from UserInfo where id=%d"), 你的id啊);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/99737.html
標籤:數據庫
下一篇:MFC hightchart曲線
