visualstudio中qt中的连接sql数据库 我开始在VisualStudioC++(2013)中编程,我使用Qt(5.5.0)来实现用户界面。 我正在尝试连接到我的sql server数据库(sql server 2012)
基于文档,它应该是简单的。这是我的代码:visualstudio中qt中的连接sql数据库 我开始在VisualStudioC++(2013)中编程,我使用Qt(5.5.0)来实现用户界面。 我正在尝试连接到我的sql server数据库(sql server 2012),c++,qt,visual-studio-2013,sql-server-2012,C++,Qt,Visual Studio 2013,Sql Server 2012,基于文档,它应该是简单的。这是我的代码: #include "qt_test1.h" //#include "ui_qt_test1.h" #include <qmessagebox.h> #include <qfiledialog.h> #include <QtGui> #include <QtSql\qsql.h> #include <QtSql\qsqldatabase.h> #include <QtSql\qsqlerro
#include "qt_test1.h"
//#include "ui_qt_test1.h"
#include <qmessagebox.h>
#include <qfiledialog.h>
#include <QtGui>
#include <QtSql\qsql.h>
#include <QtSql\qsqldatabase.h>
#include <QtSql\qsqlerror.h>
#include <qdebug.h>
qt_test1::qt_test1(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
qt_test1::~qt_test1()
{
}
// when button clicked try to connect to database
void qt_test1::on_btnShowHello_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("mydb");
db.setDatabaseName("C:\\Program Files\\Microsoft SQL Server\\MSSQL11.MSSQLSERVER\\MSSQL\\DATA\\qt_test_db");
bool ok = db.open();
}
#包括“qt_test1.h”
//#包括“ui_qt_test1.h”
#包括
#包括
#包括
#包括
#包括
#包括
#包括
qt_test1::qt_test1(QWidget*父)
:QMainWindow(父级)
{
ui.setupUi(这个);
}
qt_test1::~qt_test1()
{
}
//单击按钮时,尝试连接到数据库
void qt_test1::on_btnshowholl_clicked()上
{
QSqlDatabase=QSqlDatabase::addDatabase(“mydb”);
db.setDatabaseName(“C:\\Program Files\\Microsoft SQL Server\\MSSQL11.MSSQLSERVER\\MSSQL\\DATA\\qt\u test\u db”);
bool ok=db.open();
}
当我试着调试的时候,我得到了一个奇怪的错误。我不知道这是我的代码问题还是qt安装错误
错误:
错误2错误LNK2019:未解析的外部符号
“u declspec(dllimport)public:u cdecl
QSqlDatabase::~QSqlDatabase(void)“(\uu imp\u1QSQLDatabase@@QEAA@XZ)
在函数“private:void\u cdecl”中引用
qt_test1::单击时显示Hello(无效)”
)你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1
错误3错误LNK2019:未解析的外部符号
“uu declspec(dllimport)public:bool_uucdecl QSqlDatabase::open(void)”
(uu_uimp_u)?open@QSqlDatabase@@QEAA_NXZ)在函数“专用:
void\u cdecl qt\u test1::在单击时(void)
)你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1
错误4错误LNK2019:未解析的外部符号
“uu declspec(dllimport)public:void uu cdecl
QSQLDABASE::setDatabaseName(类QString常量&)”
(uu_uimp_u)?setDatabaseName@QSqlDatabase@@QEAAXAEBVQString@@@Z)已引用
在函数“private:void\uu cdecl”中
qt_test1::单击时显示Hello(无效)”
)你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1
错误5错误LNK2019:未解析的外部符号
“uu declspec(dllimport)public:静态类QSqlDatabase_uucdecl”
QSqlDatabase::addDatabase(类QString const&,类QString const
&)“(u_uimp_u)?addDatabase@QSqlDatabase@@萨?AV1@AEBVQString@@0@Z)
在函数“private:void\u cdecl”中引用
qt_test1::单击时显示Hello(无效)”
)你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1
错误6错误LNK2001:未解析的外部符号
“uu declspec(dllimport)public:静态字符*
QSqlDatabase::defaultConnection“
(uu_uimp_u)?defaultConnection@QSqlDatabase@@2开头)E:\Project\qt\u test1\qt\u test1\qt\u test1.obj qt\u test1
错误7错误LNK1120:5未解决
外部E:\Project\qt\u test1\x64\Debug\qt\u test1.exe qt\u test1
您的项目可能缺少QtSql.lib依赖项。在VS的项目配置中的某个地方,您应该可以添加链接器其他依赖项-此库应该位于您的Qt安装目录(Qt/lib)中。希望有帮助。这不是你的代码,也不是Qt安装。你只是不明白C/C++是如何编译程序的。我建议您研究一下预编译器、编译器和链接器是如何工作的,以填补您的知识空白 简而言之,每当您遇到“未解析的外部符号”错误时,这都是链接器生成的错误,这意味着您在项目设置中遗漏了某种库 Qt附带了一系列模块,这些模块被组织到不同的库中。
QSql
模块只是其中之一
如果您有Qt的Visual Studio加载项,这很容易修复:只需右键单击项目,选择Qt项目设置
,然后在Qt模块
选项卡上选择SQL
如果没有安装外接程序,则必须手动添加依赖项
右键单击项目,选择Properties
。
展开配置属性
,然后展开链接器
并选择输入
。
在附加依赖项中,添加: