open()函数写的不对么?

yinys08 2009-09-02 01:18:09
void CStudentTableView::OnButtonQuery()
{
// TODO: Add your control notification handler code here
UpdateData();
m_strQuery.TrimLeft();
if (m_strQuery.IsEmpty())
{
MessageBox("要查询的姓名不能为空!");
return;
}
if(m_pSet->IsOpen())
m_pSet->Close(); //如果记录集打开,则先关闭
m_pSet->m_strFilter.Format("Name='%s'",m_strQuery); //Name是表的字段名,用来指定查询条件
m_pSet->m_strSort="Name"; //Name是表的字段名,用来按Name字段的内容排序
m_pSet->Open();
if(!m_pSet->IsEOF())
UpdateData(FALSE);
else
MessageBox("没有查到你要找的姓名记录!");
}
我连接的数据源是Questionare,表是“已存数据”。
当我运行的时候会显示“ 参数不足,期待是1 ”,用Debug看了看,是open()函数的问题,但不知道怎么改!
诚望各位好汉帮个忙,做作业,很急!!!
...全文
129 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinys08 2009-09-04
  • 打赏
  • 举报
回复
谢谢各位的热心帮助,问题解决了,呵呵!
simghost 2009-09-03
  • 打赏
  • 举报
回复
问题肯定是出在SQL语句中,是找不到数表或字段.
你可以尝试新建一个表,表名字段名全用英文试试看能不能读取.
MoXiaoRab 2009-09-02
  • 打赏
  • 举报
回复
用SQL语句试试看
yinys08 2009-09-02
  • 打赏
  • 举报
回复
debug可以过,不过到ExecuteSQL就瘫痪了!
zhaohongbo83 2009-09-02
  • 打赏
  • 举报
回复
debug一下,看下你的SQL 是否正确吧?
yinys08 2009-09-02
  • 打赏
  • 举报
回复
就是上面那个,只是贴到这边来就没规整的格式了
原来写的的确有问题,今天又看了一天数据库,多少知道昨天犯了些低级的错误,这些改过来以后还是出那样的错误
这是我今天改的代码:
UpdateData();
m_strQuery.TrimLeft();
if (m_strQuery.IsEmpty())
{
MessageBox("要查询的姓名不能为空!");
return;
}
if(m_pSet->IsOpen())
m_pSet->Close();
m_pSet->m_strFilter.Format("姓名='%s'",m_strQuery);
m_pSet->m_strSort="编号 DESC";
// m_pSet->Open();
m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,"已存数据");
if(!m_pSet->IsEOF())
UpdateData(FALSE);
else
MessageBox("没有查到你要找的姓名记录!");
simghost 2009-09-02
  • 打赏
  • 举报
回复
if(m_pSet->IsOpen())
m_pSet->Close(); //如果记录集打开,则先关闭
m_pSet->m_strFilter.Format("Name='%s'",m_strQuery); //Name是表的字段名,用来指定查询条件
m_pSet->m_strSort="Name"; //Name是表的字段名,用来按Name字段的内容排序

你确定你的字段名是 姓名?
那上面的Name 是什么来的?
把你这个表的设计视图贴上来看看.
yinys08 2009-09-02
  • 打赏
  • 举报
回复
还是不行啊
simghost 2009-09-02
  • 打赏
  • 举报
回复
Select 姓名 from 已存数据

Select * from 已存数据

?
yinys08 2009-09-02
  • 打赏
  • 举报
回复
是姓名,()里的东西不管用。
simghost 2009-09-02
  • 打赏
  • 举报
回复
我的意思是 你的字段名是 "姓名(Name)" 还是 "姓名" 还是 "Name" ?
yinys08 2009-09-02
  • 打赏
  • 举报
回复
数据库:Questionare.mdb;表名称:已存数据
数据源名称:Questionare
字段名 前面已经发了,那是全部数据,直接从access里边考的
simghost 2009-09-02
  • 打赏
  • 举报
回复
你数据库字段名和表名是怎么样的?
yinys08 2009-09-02
  • 打赏
  • 举报
回复
直接出来姓名函数未定义
我看的书上说,()的内容是管对应变量名称的,不会改变字段名。
simghost 2009-09-02
  • 打赏
  • 举报
回复
Select 姓名(Name) from 已存数据 where 姓名(Name)='吉林' ?
yinys08 2009-09-02
  • 打赏
  • 举报
回复
用Debug走到ExecuteSQL就瘫了。
用原来的代码是走到Open()语句就不行了
simghost 2009-09-02
  • 打赏
  • 举报
回复
应该是SQL语句的问题,有可能是找不到这张表,或找不到表的字段建议将你的SQL语句用查询分析器测试后再放回程序中
aoyihuashao 2009-09-02
  • 打赏
  • 举报
回复
现在是哪条语句报错?
yinys08 2009-09-02
  • 打赏
  • 举报
回复
显示“参数不足,期待是 1 ”
simghost 2009-09-02
  • 打赏
  • 举报
回复
Select 姓名 from 已存数据 where 姓名='吉林'

Select 姓名 from 已存数据 where 姓名 like '吉林'
试试
加载更多回复(10)

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧