自己写的程序一运行就崩溃 求帮助!该如何解决
自己写的程序一运行就崩溃 求帮助!
\![自己写的程序一运行就崩溃 求帮助!该如何解决 自己写的程序一运行就崩溃 求帮助!该如何解决](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDEzLzAxLzIzLzExMTczMjQ5Ny5qcGc=)
------解决方案--------------------
CString sql = _T("SELECT 商品编号 FROM 销售表 WHERE (商品编号 = a )"); //要执行的SQL语句
CString psd; //存放查询结果
TRY
{
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql); //打开查询记录
rs.GetFieldValue(_T("商品名称"),psd); //得到数据
你只查询了商品编号,却要获取商品名称,自然就得不到了。
SELECT 商品编号,商品名称 FROM 销售表 WHERE (商品编号 = a )
或者:
SELECT * FROM 销售表 WHERE (商品编号 = a )
IMPLEMENT_DYNAMIC(CQIANDlg, CDialogEx)
CQIANDlg::CQIANDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CQIANDlg::IDD, pParent)
, m_ID(_T(""))
, m_SellID(_T(""))
, m_Name(_T(""))
, m_SellDate(_T(""))
, m_Price(_T(""))
, m_Amount(_T(""))
, m_Total(_T(""))
{
}
CQIANDlg::~CQIANDlg()
{
}
void CQIANDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT2, m_ID);
DDX_Text(pDX, IDC_EDIT1, m_SellID);
DDX_Text(pDX, IDC_EDIT4, m_Name);
DDX_Text(pDX, IDC_EDIT7, m_SellDate);
DDX_Text(pDX, IDC_EDIT3, m_Price);
DDX_Text(pDX, IDC_EDIT6, m_Amount);
DDX_Text(pDX, IDC_EDIT5, m_Total);
}
BEGIN_MESSAGE_MAP(CQIANDlg, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON3, &CQIANDlg::OnBnClickedButton3)
END_MESSAGE_MAP()
void CQIANDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
CDatabase m_db;
CRecordset rs;
m_db.OpenEx(_T("DSN=TestSQL01;"));
TRY
{
m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);
rs.m_pDatabase = &m_db;
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox(_T("memory exception"));
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
UpdateData(TRUE);
CString a=m_ID;
CString sql = _T("SELECT 商品编号 FROM 销售表 WHERE (商品编号 = a )"); //要执行的SQL语句
CString psd; //存放查询结果
TRY
{
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql); //打开查询记录
rs.GetFieldValue(_T("商品名称"),psd); //得到数据
m_Name=psd;
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox(_T("memory exception"));
}
END_CATCH
}
\
------解决方案--------------------
CString sql = _T("SELECT 商品编号 FROM 销售表 WHERE (商品编号 = a )"); //要执行的SQL语句
CString psd; //存放查询结果
TRY
{
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql); //打开查询记录
rs.GetFieldValue(_T("商品名称"),psd); //得到数据
你只查询了商品编号,却要获取商品名称,自然就得不到了。
SELECT 商品编号,商品名称 FROM 销售表 WHERE (商品编号 = a )
或者:
SELECT * FROM 销售表 WHERE (商品编号 = a )