无法通过 Visual Studio 将值插入到表中
Can't insert values into table through Visual Studio
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 进行插入和更新(这是)。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio 15:重载"<<" C++中的插入运算符
- 如何在Visual Studio 2013 Ultimate Edition中包含某个单词的每一行中插入断点
- 如何在Visual Studio中禁用自动插入'inline'关键字?
- 无法通过 Visual Studio 将值插入到表中
- 使用键盘中的值将值从Visual Studio c ++ 2010插入数据库
- Visual Studio C++-std::映射插入失败
- 在 Visual Studio 中放置和插入unordered_map
- Visual Studio 2013 - 自动插入"->"运算符
- 为什么Visual Studio 2012没有为我插入括号
- 在Visual Studio中插入包含保护的快速方法
- 在Visual Studio中调试:断点移动并插入新行
- Visual Studio 2010 - 如何使用VS2010在c++编程中插入复选标记"✓"
- Visual Studio 2010文本编辑器bug插入符号