+ -
当前位置:首页 → 问答吧 → 用recordset类进行数据库更新的问题

用recordset类进行数据库更新的问题

时间:2011-12-01

来源:互联网

我用recordset类对数据库进行选择没有问题,但是更新的时候总是报错,不知为啥,请各位大大给我看看,谢谢!

db.open();
CRecordset record(&db);
strSql.Format("UPDATE TB_USER SET TB_USER.USERNAME='%s' WHERE TB_USER.USERNO='%s'",m_eusername,m_euserno);
record.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);

if(!record.Update())
{
  MessageBox("¸üÐÂʧ°Ü£¡");
}
record.Close();
db.Close();

作者: sw519   发布时间: 2011-12-01

SQL语句写错了。
C/C++ code
strSql.Format("UPDATE TB_USER SET TB_USER.USERNAME='%s' WHERE TB_USER.USERNO='%s'",m_eusername,m_euserno);
// --》

strSql.Format("UPDATE TB_USER SET USERNAME='%s' WHERE USERNO='%s'",m_eusername,m_euserno);

作者: zyq5945   发布时间: 2011-12-01

引用 1 楼 zyq5945 的回复:
SQL语句写错了。

C/C++ code
strSql.Format("UPDATE TB_USER SET TB_USER.USERNAME='%s' WHERE TB_USER.USERNO='%s'",m_eusername,m_euserno);
// --》

strSql.Format("UPDATE TB_USER SET USERNAME='%s' WHERE USE……



这两句的效果是一样的

作者: sw519   发布时间: 2011-12-01

在这个软件里测试下你的SQL就清楚了。

作者: zyq5945   发布时间: 2011-12-01

我都测试过了,两句效果一样,都可以更新成功!

作者: sw519   发布时间: 2011-12-01

msdn原文如下:
  If you call Update without first calling either AddNew or Edit, Update throws a CDBException

作者: fight_in_dl   发布时间: 2011-12-01

record.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);

这句就够了,不需要再record.Update()

作者: buyong   发布时间: 2011-12-01