strSQL.Format("Delete       from       RoomInfo       where       RoomNum=%s",DelDlg.m_delete_RoomNo);  这句有误,改成:     strSQL.Format("Delete from RoomInfo where RoomNum='%s'",DelDlg.m_delete_RoomNo); 试试。 

解决方案 »

  1.   

    1.输入的m_delele_RoomNo是无效的列名,就是不执行m_DB.ExecuteSQL,这是什么原因呀?...执行了,返回0罢了,
    RoomNum 可能是整数,楼上的.2.if(m_pSet-> IsOpen())       // 

                m_pSet-> Close(); 

    if(!m_pSet-> IsOpen()) 

                m_pSet-> Open(CRecordset::dynaset,strSQL);     //此法执行SQL语句时会出错,snapshot也不行 
    } m_pSet是数据库连接的指针么?如果是的话关闭掉了还能执行SQL语句么?
      

  2.   


    常用数据库中,SQL 语句引用字符串时,在字符串前后要加入一对单引号,例子如下:
    SELECT * FROM student WHERE stuname = '张三'我们的程序向DBMS提交SQL语句时,应该不会去验证这个语句是否正确,而是数据库来验证;所以,你可以调试看看你向DBMS发送的SQL是否正确?另外,要学会通过 catch 捕获的错误信息判断问题。
      

  3.   

    我一般是用ADO连接数据库,刷新数据到CListCtrl控件其实步骤并不简单。
    我的方法是:
    1、创建一个数据记录的类,在该类的成员函数实现AddRecord();
    2、准备一个记录判断函数,判断输入的记录关键字的唯一性,如不存在该记录则声明一个记录类的指针并为指针分配内存;
    3、设置类指针的成员变量值,调用AddRecord()成员函数添加记录到数据表,收回分配给指针的内存;
    4、声明一个CADORecordset指针,并分配内存,执行查询语句,如查询结果记录数大于0则刷新CListCtrl控件内容;
    5、关闭数据集,收回分配的内存。删除和编辑记录后的刷新的意思大同小异。以上不知对你是否会有帮助?