无法通过 Visual Studio 将值插入到表中

Can't insert values into table through Visual Studio

本文关键字:插入 Studio Visual      更新时间:2023-10-16
bool BDados::registar(string nome, string email, string gabinete, string sigla, string pass) {    
stringstream query;
        query << "INSERT INTO Docente VALUES (" << 7 << ",'" << nome << "','" << email << "','" << codigo << "','" << sigla << "','" << pass << "')";
        try{
            instrucao = ligacao->createStatement(query.str());
            ResultSet* re = instrucao->executeQuery();
            cout << "Registo efectuado com sucesso." << endl;
            return true;
        }catch (SQLException erro) {
            cout << erro.getMessage();
            return false;
        }
}

所以我用这段代码将行插入到我的表讲解员中。但它什么也没做。奇怪的部分是没有抛出 SQLException,所以理论上这应该工作正常还是我错过了什么?

编辑:问题是我认为执行更新是自动提交的,但显然没有。解决方案是添加

ligacao->commit();

并替换此ResultSet* re = instrucao->executeQuery();有了这个int a = instrucao->executeUpdate();

您是否将更改提交到数据库?

此方案最可能的原因是您有两个数据库。

您正在插入到一个数据库中,但在另一个数据库中查找插入的记录。

根据 Oracle 的文档,您应该使用 executeQuery 进行查询(这不是),并使用 executeUpdate 进行插入和更新(这是)。