标题:关于数据库和Combo box控件的两个问题???
只看楼主
umbrellandy
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-7-21
 问题点数:0 回复次数:5 
关于数据库和Combo box控件的两个问题???
程序里遇到几个问题,不知道是怎么回事,请大家帮帮忙看看怎么解决....
1,关于数据库搜索的
在数据库里搜索“设备编号=10-1”的记录,我是按下面的语句做的,可是却找不到
m_pSet->m_strFilter.Format("设备编号=%s",id);
m_pSet->Open();
如果是这样的话就能找到:
m_pSet->m_strFilter.Format("number=%d",id);
m_pSet->Open();
这是怎么回事呢?是中文的毛病还是id的类型不能是字符串形式?
2,关于Combo box控件的
在我的对话框里有3个这样的控件,程序运行的时候,应该是把3个控件的值都存储到数据库里,可是最后一个的值总是存不上,比如说吧3个控件对应的值分别是m_a,m_b,m_c;它们对应的类型都是CString,控件对应的消息函数如下:
void CMainLineDlg::OnSelchangeCOMBOA()
{
UpdateData(TRUE);
}
运行程序时,依次选择m_a,m_b,m_c的值,那么m_c值就存不上,如果换个顺序m_b,m_c,m_a;那么m_a的值就存不上,这是怎么回事呢?偶尔三个也能都存上,不过机会非常小,感觉有点怪,有人也遇到过这种情况吗?
搜索更多相关主题的帖子: box控件 Combo 数据库 pSet 
2006-09-21 21:20
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
得分:0 
问题1:没准是中文的问题,也可能是字符串要加单引号之类的,数据本身是int就不能是字符串。最简单的方法就是拿Sql statement搜一下就知道了。
问题2:不应该有这种问题。可能是你选的Combo box的Type是dropdown。dropdown的意思就是即可以在list中选择,又可以敲进新的text。这样OnSelectionChange的时候不会更新text,因为window认为你还在编辑。解决的方法是把Combo box的Type改成drop list。或者在Combo box失去focus的时候管理。OnKillFocus。。。。

http://myajax95./
2006-09-22 07:36
umbrellandy
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-7-21
得分:0 

谢谢斑竹,第二个问题解决了
第一个还是不行,语法上应该没错误吧,逻辑也对着呢,可是怎么就出不来效果呢,如果都改成英文的那整个表就不能一目了然了,要是碰到个不懂英语的就更看不懂


生活充满阳光,快乐无处不在
2006-09-22 11:10
umbrellandy
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-7-21
得分:0 
应该这样设置:
m_pSet->m_strFilter.Format("设备编号=‘%s’",id);

[此贴子已经被作者于2006-9-22 11:37:39编辑过]


生活充满阳光,快乐无处不在
2006-09-22 11:23
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
得分:0 
你的id里如果是string类的话需要加单引号呀。这是sql语法。

http://myajax95./
2006-09-22 11:55
umbrellandy
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-7-21
得分:0 
哦,原来如此啊

生活充满阳光,快乐无处不在
2006-09-22 12:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-92007-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.869835 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved