若该文为原创文章,未经允许不得转载
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
Qt开发专栏:实用技巧(点击传送门)
需求
指定使用sql server数据库,qt连接sql server进行查询操作。
原理
qt使用odbc驱动连接sql server数据库。
配置ODBC以及测试数据源
第一步:控制面板搜索ODBC数据源

第二步:添加odbc,已有则不添加,点击配置
第三部:配置ODBC向导
第四步:获取服务器名称
第五步:使用配置的sa帐号登录
第六步:配置ODBC服务器的数据库
第七步:配置完成
第八步:配置成功
第九步:点击“测试数据源“,测试成功表示数据库连接没有问题
关键代码
启动时连接数据库
void MainWindow::init()
{
_sqlServer.setDataBasetName("localhost", "dictionary", "sa", "123456");
if(!_sqlServer.connectToSqlServer())
{
QMessageBox::warning(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("数据库连接错误,词典将无法正常使用!!!"));
}
}
void SqlServer::setDataBasetName(QString server, QString database, QString uid, QString pwd)
{
_server = server;
_database = database;
_uid = uid;
_pwd = pwd;
}
bool SqlServer::connectToSqlServer()
{
#if 0
// 方法一:尝试成功
_db = QSqlDatabase::addDatabase("QODBC");
_db.setHostName(_server);
_db.setDatabaseName(_database);
_db.setUserName(_uid);
_db.setPassword(_pwd);
#else
// 方法二:尝试成功:注意对于express版本的数据库,SERVER字段后面一定要加\\sqlexpress,否则连接不上
_db = QSqlDatabase::addDatabase("QODBC");
QString strConnect = QString("Driver={SQL Server};"
"SERVER=%1\\sqlexpress;"
"DATABASE=%2;"
"UID=%3;"
"PWD=%4;")
.arg(_server)
.arg(_database)
.arg(_uid)
.arg(_pwd);
_db.setDatabaseName(strConnect);
#endif
if(!_db.open())
{
emit error(_db.lastError().databaseText());
return false;
}else{
emit connctedToSqlServer();
return true;
}
}