qt连接数据库(sql server)

公司有一项业务,需要把上百条数据输入到数据库(公司使用sql server数据库)中,数据来源是excel表格或者是微信公众号的页面,这个工作十分的无聊。我就想写一个程序批量的写入数据库,节省人力物力。

我最擅长的语言是c++,所以决定使用c++来连接数据库。如果只给我gcc或者g++肯定也是不行的,于是决定借助qt库。

1.QT如何连接数据库sql server?
数据库服务器需要准备,需要检查端口,查看权限是否打开。需要准备一个可以登陆的账号和密码。
QT安装的那台电脑需要设置数据源。在控制面板->管理工具->数据源中添加新的数据源,设置数据源的时候最好指定默认数据库。
基础的要求完成了,下面就可以使用代码来连接数据库了。

  QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); //设置数据库驱动类型为SQL Server
  qDebug()<<"ODBC driver?"<<db.isValid(); //查看QT是否支持该类型的数据库
  QString dsn = QString::fromLocal8Bit("QTODBC"); //数据源名称
  db.setHostName("192.168.1.107"); //选择本地主机,127.0.1.1
  db.setDatabaseName(dsn); //设置数据源名称
  db.setUserName("qiny"); //登录用户
  db.setPassword("******"); //密码
  if(!db.open()) //打开数据库
  {
  qDebug()<<db.lastError().text(); //提示数据库没有连接的错误信息。
  //打开失败
  }
  //到此处数据库就连接完成了,是不是很简单呢?

2.QT如何操作数据库?
对数据库的操作,不外乎增删查改。
QT中提供了丰富的函数来处理数据库的操作
1.QsqlQuery类;
QSqlQuery query; //定义一个对象
query.exec("select * from News"); //执行一段程序

//也可以不提前给出数据,使用占位符
query.prepare("INSERT INTO T_USER (name, age) VALUES (:name, :age)"); //准备执行SQL查询
query.bindValue(":name", "justin"); //在这定占位符上确定绑定的值
query.bindValue(":age", 33);
query.exec();

如果是增删改,并没有多少返回。但是如果查询有很多返回值,那么就需要读取
query.next(),指向下一条数据
query.seek(int n) :query指向结果集的第n条记录。指定当前的位置
query.first() :query指向结果集的第一条记录。
query.last() :query指向结果集的最后一条记录。
previous() :query指向上一条记录,每执行一次该函数,便指向相邻的上一条记录。
record() :获得现在指向的记录。
value(int n) :获得属性的值。其中n表示你查询的第n个属性,比方上面我们使用“select * from student”就相当于“select id, name from student”,那么value(0)返回id属性的值,value(1)返回name属性的值。该函数返回QVariant类型的数据,关于该类型与其他类型的对应关系,可以在帮助中查看QVariant。
at()//返回当前查询的位置

3.如何显示数据?

可以使用一些model的类,例如QModelIndex,QSqlQueryModel,QSqlTableModel等

具体的例子参考博客https://blog.csdn.net/qq_36038987/article/details/80795626

原文地址:https://www.cnblogs.com/qiny1012/p/9555303.html

时间: 2024-10-12 02:39:54

qt连接数据库(sql server)的相关文章

qt调用sql server存储过程并获取output参数

最近新做的一个项目需要使用qt连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章,如果是连接另一台机器的sql server就不用执行第一步“开启ODBC驱动”了 http://www.cnblogs.com/shaolw/p/3411285.html 另外指定数据库用户名和密码可以使用Uid和Pwd,即原文dsn参数可以这样写: QString dsn = QString("Driver={

Python读取配置文件,并连接数据库SQL Server

用配置文件保存固定的连接数据,改的话比较方便. 1.新建一个配置文件:SQlconfig.config,以数据库为例. 内容如下,当然也可以添加多个 [Database1] database=db_test host=test.sqlserver.rds.alincs.com,3433 user=qhlt_just pwd=zHi4M63wIddlSDK2nY [Database2] database=db_test host=test.sqlserver.rds.alincs.com,3433

myeclipse连接数据库sql server

1.打开数据库Microsoft sql server2008,输入以下命令: 此时可是看到端口号为1619,记住此端口号,等会儿会用到. 2.打开myeclipse2014,找到最上方的myeclipse->open perspective->myeclipse database exploer,打开之后输入以下内容: driver name可以修改.user name是数据库里登录的用户名,密码也是. 最后还要点击test driver,就是上方圈出的.如果提示成功的话就大功告成啦.

使用变量向SQL Server 2008中插入数据

QT通过ODBC连接数据库SQL Server 2008,进行数据插入时遇到的问题: 先把数据存入变量中,如何使用变量进行插入?插入语句该怎么写? QSqlQuery query(db); query.exec("insert into device values('"+datetime+"','"+splantNum+"','"+sdeviceNum+"','"+stemper+"','"+spress+

MySQL、Oracle、Sql Server数据库JDBC的连接方式

MySQL: 先添加MySQL的jar包 String url="jdbc:mysql://localhost:3306/数据库名";       //数据库地址 String name="root";       //数据库用户名 String password="123456";       //数据库用户密码 Class.forName("com.mysql.jdbc.Driver") ;      //加载MySQL驱

Qt数据库操作(qt-win-commercial-src-4.3.1,VC6,Oracle,SQL Server)

qt-win-commercial-src-4.3.1.qt-x11-commercial-src-4.3.1Microsoft Visual C++ 6.0.KDevelop 3.5.0Windows Xp.Solaris 10.Fedora 8SQL Server.Oracle 10g Client ■.驱动编译这里要提及两个数据库驱动,分别是ODBC和OCI Windows操作系统中编译ODBC驱动:执行以下命令,会在%QTDIR%\plugins\sqldrivers目录下面生成qsql

连接数据库与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误,请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。

如果您的连接字符串是这样的 <add key="ConnectionString" value="server=127.0.0.1;database=NewsTest;uid=sa;pwd=***"/> 或者这样的 <add key="ConnectionString" value="server=local;database=NewsTest;uid=sa;pwd=***"/> 并且没有语法错误,建议

(转)在SQL Server 2016,Visual Studio 2017环境下,连接数据库屡屡失败,在connectionString上出的问题

适用情景: 1,ServerVersion出了问题,"SqlCnt.ServerVersion"引发了类型"System.InvalidOperationException"的异常 2,在String上还以为Data Source应该是.或者local的,这个实际上是要看情况的. 问题描述: 在环境(SQL Server2008.Win7.32位.VS2010开发系统)下,连接数据库失败,出现"在于SQL Server建立连接时出现与网络相关的或特定于实例

Sql server 跨服务器连接数据库

select * from opendatasource('SQLOLEDB' , 'Data Source=172.27.xxx.xxx; User ID=Admin;Password=xxx').[数据库名].dbo.表名 备注:数据名的中括号和dbo一定要写,不然找不到 Sql server 跨服务器连接数据库