MFC ADO连接ACCESS 从数据库传值到对话框的编辑框中 代码出错 HELP

yoyo_fan_503 2010-04-01 11:12:30
CString sql,str;

sql = "select * from boli where id = '"+m_strID+"'";
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t(sql),_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);

if(m_pRecordset->GetRecordCount()!= 0)
{
UpdateData(TRUE);
m_fImport =(float)m_pRecordset->GetCollect("import");
m_fNational =(float)m_pRecordset->GetCollect("national");
UpdateData(FALSE);

}
m_pRecordset->Close();

这串代码有什么问题呀。为什么编译无错,运行后,在编辑框内输入值后 马上就弹出 debug error 强制终止的错误呢。。?
各位大虾 帮帮忙~~~ 很急 555555555555555555~~~~~~~
...全文
276 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
一路相伴* 2010-04-02
  • 打赏
  • 举报
回复
那请问楼主,错误出在什么地方呢?你能刚告诉我吗,谢谢 了
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
AfxMessageBox(e->ErrorMessage());这句有问题
改成这样 MessageBox(e.ErrorMessage);///显示错误信息
又来个这样的问题
error C2664: 'MessageBoxA' : cannot convert parameter 1 from 'const char *(void) const' to 'const char *'
楼上大虾 是想知道错误原因吗~?
zgl7903 2010-04-01
  • 打赏
  • 举报
回复
catch(_com_error e)///捕捉异常
{
AfxMessageBox(e->ErrorMessage());///显示错误信息
}
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
CString sql = "select * from boli where id = '"+m_strID+"'";
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t(sql),_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
// 把数据库的指定字段内容写入编辑框中。
m_fImport = m_pRecordset->GetCollect("import");
m_fNational = m_pRecordset->GetCollect("national");

UpdateData(TRUE);
}

catch(_com_error e)///捕捉异常
{
AfxMessageBox(" 读取记录信息失败! ");///显示错误信息
}

这样。。。这样的话 只会弹出对话框 读取记录信息失败! 抓狂。
muyiyj 2010-04-01
  • 打赏
  • 举报
回复
你用ado的时候调用下
try()
catch
{}语句啊,可以捕获哪个位置出的问题,另外加下段点分析。
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
我错了…… 我给你们道歉了…… 浪费你们时间。。。
犯了一个比较低级的错误。。。已经改好了。。。
谢谢你们。。。非常感谢……
NightTravelDeity 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 yoyo_fan_503 的回复:]
引用 15 楼 nighttraveldeity 的回复:
CString strValue = (char*)(_bstr_t)pres->GetCollect((_variant_t)"field2");
float f = atof(strValue);

好像是读取不到数据 但是不懂为什么会读不到。
[/Quote]

问题是里面有数据吗
SFLDSIMON501055 2010-04-01
  • 打赏
  • 举报
回复
m_fImport = m_pRecordset->GetCollect("import"); ??
m_fNational = m_pRecordset->GetCollect("national");???

m_pRecordset->GetCollect("national")
得到的类型不能直接给到 float类型。要转换一下。。。!
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
先在这里谢过各位了。唉 辛苦大家了。
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 muyiyj 的回复:]
while (!pRecordset->adoEOF)
{
(_bstr_t)(pRecordset->GetCollect("userdate"));

这是我以前做的一个代码,你要用while (!pRecordset->adoEOF){}
方式来读集合里面数据,很有可能你的m_pRecordset集合没任何东西,但你却去取东西,那就会报错。
[/Quote]

我这么试了 调试的时候 可以运行while里的语句,然后就报错。
问题就是出在 GetCollect 但是不懂怎么改。。。
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 nighttraveldeity 的回复:]
CString strValue = (char*)(_bstr_t)pres->GetCollect((_variant_t)"field2");
float f = atof(strValue);
[/Quote]
好像是读取不到数据 但是不懂为什么会读不到。
NightTravelDeity 2010-04-01
  • 打赏
  • 举报
回复
我刚测试过
NightTravelDeity 2010-04-01
  • 打赏
  • 举报
回复
CString strValue = (char*)(_bstr_t)pres->GetCollect((_variant_t)"field2");
float f = atof(strValue);
muyiyj 2010-04-01
  • 打赏
  • 举报
回复
while (!pRecordset->adoEOF)
{
(_bstr_t)(pRecordset->GetCollect("userdate"));

这是我以前做的一个代码,你要用while (!pRecordset->adoEOF){}
方式来读集合里面数据,很有可能你的m_pRecordset集合没任何东西,但你却去取东西,那就会报错。
muyiyj 2010-04-01
  • 打赏
  • 举报
回复
你先确定下你的sql语句有问题没有
打开access在里面输入sql语句检查有问题没有
然后在try语句块内第一条语句加断电调试。
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nighttraveldeity 的回复:]
= (char*)(_bstr_t)pRes->GetCollect((_variant_t)"import");
= (char*)(_bstr_t)pRes->GetCollect((_variant_t)"national");
这样试一下
[/Quote]
忘了说了。。。m_fImport,m_fNational这两个变量 是float型的
NightTravelDeity 2010-04-01
  • 打赏
  • 举报
回复
m_fImport = (char*)(_bstr_t)pRes->GetCollect((_variant_t)"import");
m_fNational= (char*)(_bstr_t)pRes->GetCollect((_variant_t)"national");
这样试一下
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nighttraveldeity 的回复:]
Item cannot be found in the collection corresponding to the requested name or ordinal.

意思貌似你的字段 或表 有问题
[/Quote]
我也觉得是这方面的问题。可是就是找不出哪里不对劲啊。。。
yoyo_fan_503 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 rebort_q 的回复:]
设断点,跟踪,那行代码出错.
[/Quote]
弱弱的说句 其实这个调试我不太懂
简单的弄了下
出现一个
0044FC30 CXX0013:Error:missing operator
它说哪个少了参数。。。可是偶不懂啊。。。
NightTravelDeity 2010-04-01
  • 打赏
  • 举报
回复
Item cannot be found in the collection corresponding to the requested name or ordinal.

意思貌似你的字段 或表 有问题
加载更多回复(3)

4,018

社区成员

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

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