数据库已经连接上,想要实现简单的查询功能
输入一个字符串pm22,如果找到匹配纪录,就显示pm33,代码如下:
ppMyRecordSet->Open();
ppMyRecordSet->MoveFirst();
do{
if(ppMyRecordSet->m_called !=pm22)
ppMyRecordSet->MoveNext();
else
{
pm33=pm22;
m_listReceived.AddString(pm33);
}
}
while(!ppMyRecordSet->IsEOF());但是数据库没有反应了
输入一个字符串pm22,如果找到匹配纪录,就显示pm33,代码如下:
ppMyRecordSet->Open();
ppMyRecordSet->MoveFirst();
do{
if(ppMyRecordSet->m_called !=pm22)
ppMyRecordSet->MoveNext();
else
{
pm33=pm22;
m_listReceived.AddString(pm33);
}
}
while(!ppMyRecordSet->IsEOF());但是数据库没有反应了
解决方案 »
- 关于directX11学习的问题
- 一个算法的思路问题,求高手提点一下
- 使用CFileDialog时,有没有什么办法控制可进入的路径
- C和C++混合编程引起的库文件函数无法解析问题?(较难)
- 想让线程精确挂起4ms,怎么办?
- 一个VC程序能同时打开两个数据库吗?(急,在线等)
- 我在多文档中绘制了图形,但是一拖动滚动条,图形总是不能恢复。
- VC好难学啊,各位兄弟快告诉我有没有什么比较快学会VC的方法~~~
- Visual Studio Team System 2008 中文零售版 BT下载
- c++的常识问题:怎么控制小数的精度。
- WM_SIZE:Invalidate(hwnd,NULL,FALSE),为什么改变窗口大小时,窗口内容还会消失
- 向高手求救,在线等,急急,关于ocx里面创建一个对话框中调用另外一个控件的问题!
ppMyRecordSet->Open();
ppMyRecordSet->MoveFirst();
while(!ppMyRecordSet->IsEOF());
{
if(ppMyRecordSet->m_called ==pm22)
{
pm33=pm22;
m_listReceived.AddString(pm33);
}
ppMyRecordSet->MoveNext();
}
ppMyRecordSet->Open();
ppMyRecordSet->MoveFirst();
do{
if(ppMyRecordSet->m_called !=pm22)
ppMyRecordSet->MoveNext();
else
{
pm33=pm22;
m_listReceived.AddString(pm33);
ppMyRecordSet->MoveNext();//刚才没加这个,跳进死循环了
}
}
while(!ppMyRecordSet->IsEOF());
多谢
CTest1Set db1;
db1.Open(AFX_DAO_USE_DEFAULT_TYPE, NULL, 0);//打开数据库 db1.MoveFirst();//移向表的开头
p = new User( db1.m_column1, db1.m_column2, db1.m_column3, NULL);//生成一个内部数据对象
q = p; db1.MoveNext();//移向下一条记录
do
{
p->next = new User(db1.m_column1, db1.m_column2, db1.m_column3, NULL);
db1.MoveNext();
p=p->next;
} while(!db1.IsEOF());//结束否,未结束则继续
注:1、CTest1Set是我的程序中用于打开数据库表的对象,是在建立工程文件时自动生成的数据库类,定义如下:
class CTest1Set : public CDaoRecordset
{
public:
CTest1Set(CDaoDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CTest1Set)// Field/Param Data
//{{AFX_FIELD(CTest1Set, CDaoRecordset)
CString m_column1;
CString m_column2;
short m_column3;
//}}AFX_FIELD// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTest1Set)
public:
virtual CString GetDefaultDBName(); // REVIEW: Get a comment here
virtual CString GetDefaultSQL(); // default SQL for Recordset
virtual void DoFieldExchange(CDaoFieldExchange* pFX); // RFX support
//}}AFX_VIRTUAL// Implementation
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif}; 2、User是我自己定义的一个数据类,用于存储重数据库中读出的数据。
if(!ppMyRecordSet->IsOpen()),否则运行时出错.
还有你的程序有一点的问题,你想一下如果ppMyRecordSet->Open()后,记录集是空的,你的程序就不能运行.改成while循环或者判断一下记录集是事为空.