主题:不能正确判断记录集是否为空的问题
不能正确判断记录集是否为空的问题
对上次的问题进一步简化,,
简化后例子:
用SQL2000建立一个名为"student information"数据库,包括一个名为:"stu_table"的基表,该基表中包含两列:name 和 number ;
在VC++中利用MFC向导创建一singal document应用程序,并用ODBC与"student information"的数据库中stu_table向连.在其对话框中创建两个编辑框控件,并添加对应两变量分别为 m_number,m_name;再创建一个按钮"查询"控件,并添加该按钮click的消息函数,,
我想实现如下功能,在number的编辑框中输入一个字符串,然后单击" 查询"的按钮,若在数据库中的number字段中找不
到与输入的字符串相等的纪录则输出一个提示出错信息{AfxMessage("该学号不存在!");} 若找到一个记录与输入的字串相等,则在 提示正确信息{AfxMessage("学号正确!");};
按钮消息函数
void COdbc_StuNameView::OnBUTTONRun() COdbc_StuNameView是CRecordView的派生类
{ COdbc_StuNameSet myDataSet; // COdbc_StuNameSet是CRecordset的派生类
CString mySqlSelct;
UpdateData(TRUE);
mySqlSelct="select * from TABLE_student where number='m_number'"; //m_number为number编辑框的控件变量
if(m_number.IsEmpty()) {AfxMessageBox("please input Student'number");
return;}
if(!myDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mySqlSelct))
{AfxMessageBox("student table open failed"); return;}
if(!myDataSet.IsEOF())
{AfxMessageBox("Success"); return;}
else
{AfxMessageBox("Erro!!"); return;}
UpdateData(FALSE);
}
编译,连接,没有错误,,但是我在编辑框中输入的number(比如:123)明明是在数据库中有的,但该函数总是会执行{AfxMessageBox("Erro!!"); return;} 这说明,执行if(!myDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mySqlSelct)) {AfxMessageBox("student table open failed"); return;}后记录集仍然为空,,,,
怎么改,,,,请各位帮忙啊,,,,
对上次的问题进一步简化,,
简化后例子:
用SQL2000建立一个名为"student information"数据库,包括一个名为:"stu_table"的基表,该基表中包含两列:name 和 number ;
在VC++中利用MFC向导创建一singal document应用程序,并用ODBC与"student information"的数据库中stu_table向连.在其对话框中创建两个编辑框控件,并添加对应两变量分别为 m_number,m_name;再创建一个按钮"查询"控件,并添加该按钮click的消息函数,,
我想实现如下功能,在number的编辑框中输入一个字符串,然后单击" 查询"的按钮,若在数据库中的number字段中找不
到与输入的字符串相等的纪录则输出一个提示出错信息{AfxMessage("该学号不存在!");} 若找到一个记录与输入的字串相等,则在 提示正确信息{AfxMessage("学号正确!");};
按钮消息函数
void COdbc_StuNameView::OnBUTTONRun() COdbc_StuNameView是CRecordView的派生类
{ COdbc_StuNameSet myDataSet; // COdbc_StuNameSet是CRecordset的派生类
CString mySqlSelct;
UpdateData(TRUE);
mySqlSelct="select * from TABLE_student where number='m_number'"; //m_number为number编辑框的控件变量
if(m_number.IsEmpty()) {AfxMessageBox("please input Student'number");
return;}
if(!myDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mySqlSelct))
{AfxMessageBox("student table open failed"); return;}
if(!myDataSet.IsEOF())
{AfxMessageBox("Success"); return;}
else
{AfxMessageBox("Erro!!"); return;}
UpdateData(FALSE);
}
编译,连接,没有错误,,但是我在编辑框中输入的number(比如:123)明明是在数据库中有的,但该函数总是会执行{AfxMessageBox("Erro!!"); return;} 这说明,执行if(!myDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mySqlSelct)) {AfxMessageBox("student table open failed"); return;}后记录集仍然为空,,,,
怎么改,,,,请各位帮忙啊,,,,