能不能帮我看一下这一段代码?
void CCustomerDlg::OnButtonQuery()
{
UpdateData(TRUE);
if(!m_set.Open()||m_set.IsEOF())
{
AfxMessageBox("没有找到匹配数据,请重新输入!");
}
CString str;
if(m_set.IsOpen())
m_set.Close();
m_set.Open();
m_set.MoveFirst();
int i=IDC_STATIC_CUSTOMER_ID;
int j=IDC_STATIC_CUSTOMER_NAME;
int m=IDC_STATIC_CUSTOMER_ENABLEDEBT;
int n=IDC_STATIC_CUSTOMER_REALDEBT;
int p=m_customerID.GetCurSel();
for (int q=0;q<p;q++)
{
m_set.MoveNext();
}
str.Format("%ld",m_set.m_CUSTOMER_customer_ID);
SetDlgItemText(i,str);
str.Format("%s",m_set.m_customer_name);
SetDlgItemText(j,str);
str.Format("%s",m_set.m_customer_enable_debt);
SetDlgItemText(m,str);
str.Format("%s",m_set.m_customer_real_debt);
SetDlgItemText(n,str);
m_set.Close();
}
实现的功能很简单,从一个List框中(定义的变量是m_customerID)输入取得Customer_ID,然后从Customer表中把与这一ID相匹配的行的四个内容输出。
但为什么不管我输入的Customer_ID是几,输出的总是第一个记录呢?
问题点数:0、回复次数:4Top
1 楼iamcm1(cm)回复于 2003-08-03 02:39:47 得分 0
up一下,
如果没人解惑只好先去睡觉啦!Top
2 楼crystal_heart(笑看风云)回复于 2003-08-03 08:38:01 得分 0
upTop
3 楼crystal_heart(笑看风云)回复于 2003-08-03 08:43:07 得分 0
if(m_set.IsOpen())
m_set.Close();
m_set.Open();
m_set.MoveFirst();
...
int p=m_customerID.GetCurSel();
for (int q=0;q<p;q++)
{
m_set.MoveNext();
}
这种读取数据方式不好。你直接在SQL字符串那里加上WHERE条件不就行了?Top
4 楼clamy(克莱明)回复于 2003-08-03 22:21:28 得分 0
对,我赞成楼上观念
但一定要这样。。。。。。可以通过调试,看看问题出在哪?这可是咱这行必备的唷
调试时,你可先看看各变量是否符合实际,再通过其它一些输出语句,看看for循环的内容。。。
呵呵。。。。祝你好运^_^Top




