QT 怎么样才能把Sqlite数据库表导出成txt或者csv?

static bool creatConnection()
{
//creat a database
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","connection1");
db.setDatabaseName("my1.db");
db = QSqlDatabase::database("connection1"); //建立数据库连接

if(!db.open()){
    QMessageBox::critical(0,"Cannot open database1",
                          "Unable to establish a database connection.",QMessageBox::Cancel);
    return false;
}

QSqlQuery query1(db);
query1.exec("create table shuju (Datetime QDateTime primary key,yanwu float,Temperature float,Humidity float)");

return true;

}

void SocketTCPServer::ReadDataFromSqlWriteToCSV(const QString &tableName,const QString &csvFileName)//将表导出为csv格式表格
{
QSqlTableModel *exportModel = new QSqlTableModel();

exportModel->setTable(tableName);
exportModel->select();
QStringList strList;//记录数据库中的一行报警数据
QString strString;
const QString FILE_PATH(csvFileName);

QFile csvFile(FILE_PATH);
if (csvFile.open(QIODevice::ReadWrite))
{
    for (int i=0;i<exportModel->rowCount();i++)
    {
        for(int j=0;j<exportModel->columnCount();j++)
        {
            strList.insert(j,exportModel->data(exportModel->index(i,j)).toString());//把每一行的每一列数据读取到strList中
        }
        strString = strList.join(", ")+"\n";//给两个列数据之前加“,”号,一行数据末尾加回车
        strList.clear();//记录一行数据后清空,再记下一行数据
        csvFile.write(strString.toUtf8());//使用方法:转换为Utf8格式后在windows下的excel打开是乱码,可先用notepad++打开并转码为unicode,再次用excel打开即可。
        qDebug()<<strString.toUtf8();
    }
    csvFile.close();
}

}

void SocketTCPServer::on_daochushuju_clicked()
{

ReadDataFromSqlWriteToCSV("shuju","shuju.csv");

}

1个回答

成功创建了csv文件,但是里面没有内容

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

Android如何将SQLite数据库中的数据导出为csv格式的文件

搜到了下边这个方法,但是我没实现功能,请各位指教。最好能有代码 public void ExportToCSV(Cursor c, String fileName) { int rowCount = 0; int colCount = 0; FileWriter fw; BufferedWriter bfw; File sdCardDir = Environment.getExternalStorageDirectory(); File saveFile = new File(sdCardDir, fileName); try { rowCount = c.getCount(); colCount = c.getColumnCount(); fw = new FileWriter(saveFile); bfw = new BufferedWriter(fw); if (rowCount > 0) { c.moveToFirst(); // 写入表头 for (int i = 0; i < colCount; i++) { if (i != colCount - 1) bfw.write(c.getColumnName(i) + ','); else bfw.write(c.getColumnName(i)); } // 写好表头后换行 bfw.newLine(); // 写入数据 for (int i = 0; i < rowCount; i++) { c.moveToPosition(i); // Toast.makeText(mContext, "正在导出第"+(i+1)+"条", // Toast.LENGTH_SHORT).show(); Log.v("导出数据", "正在导出第" + (i + 1) + "条"); for (int j = 0; j < colCount; j++) { if (j != colCount - 1) bfw.write(c.getString(j) + ','); else bfw.write(c.getString(j)); } // 写好每条记录后换行 bfw.newLine(); } } // 将缓存数据写入文件 bfw.flush(); // 释放缓存 bfw.close(); // Toast.makeText(mContext, "导出完毕!", Toast.LENGTH_SHORT).show(); Log.d("导出数据", "导出完毕!"); Toast.makeText(SecondActivity.this, "默认Toast样式", Toast.LENGTH_SHORT).show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { c.close(); } }

QT如何将sqlite数据库与Excel表格绑定起来?

RT,能将sqilte数据库里的数据导出到Excel表格中,如果要对数据库进行修改,就修改Excel表格,然后将表格里的数据导入到sqilte数据库中。 求大神帮忙!!!

求助:QT无法操作已有的sqlite数据库

版本:qt5.3 sqlite2.7 描述: 1.qt在代码中建的库和表代码中可以随意操作,但终端sqlite命令打不开提示“unable to open …… file is encryped or is not a database” 2.在终端通过命令建的数据库qt代码中 可以.open()但无法操作 找不到表 bool Data::connect(QString usrType) { //stDB = QSqlDatabase::addDatabase("QSQLITE"); stDB = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE", "connectname")); stDB->setDatabaseName("./DB/" + usrType); if (stDB->open()) { //QMessageBox::information(NULL, "数据库", "connect!"); return true; } else { QMessageBox::critical(NULL, "数据库", "connect error"); } return false; } int Data::check_usr(QString str_name, QString str_pwd, int flag) { int usr_flag = 0; //QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); QSqlQuery query(*stDB); if(query.exec("select * from users")) { while(query.next()) { QString name = query.value(0).toString(); QString pwd = query.value(1).toString(); if(name == str_name && pwd == str_pwd) { if(name == "admin") { return usr_flag; } return usr_flag + flag; } } } return -1; }

python程序中执行sqlite数据库表查询问题

我的python程序的头是这样写的: #!/usr/bin/python #coding: utf-8 import os import sys import xlsxwriter reload(sys) sys.setdefaultencoding('gbk') import sqlite3 我在python程序中,执行sqlite数据库的表查询操作时,报如下错误: cursor = conn.execute(sqlstrchannel) sqlite3.OperationalError: Could not decode to UTF-8 column 'proname' with text '意义'。 这应该怎么解决??

SQLite 数据库表的行数

如何计算一个`SqLite`数据库表的行数?我创建的一个表格名称是`my_table`,这个表格有`name info` 和`number`这两列。

QT 里sqlite的中文乱码问题

各位大哥大姐,小弟是刚学qt的菜鸟,刚用qt连接sqlite数据库准备做一个系统时发现tableview里的中文都是乱码,请问要怎么解决

Qt里面使用sqlite3连接成功,但是对数据库操作无响应

操作环境是 macOS, Qt 5.8 在代码外,我建好了 myData.db 数据库文件,已经进行了建表。我想把在ui 界面的输入框里面获得到的数据插入到数据库里面,但是运行后点击相关的插入按钮却插入不成功。 我是连上了数据库的,但是不能把获取到的数据插入到数据库,也没有报错什么的,不知道是否是我的数据库环境配置问题还是代码上忘了什么。请大家帮我看看,十分感谢。 这个是主页面的 cpp文件 ```c++ #include "MainWindow.h" #include "ui_MainWindow.h" #include "NextWindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //创建出新窗口 nextWin = new NextWindow; connect(ui->switchLabel, &MyLabel::clicked, [=](){ this->hide(); nextWin->show(); }); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_signUp_clicked() { //连接到数据库 // myData = QSqlDatabase::addDatabase("QSQLITE"); QSqlDatabase myData; if(QSqlDatabase::contains("qt_sql_default_connection")) { myData = QSqlDatabase::database("qt_sql_default_connection"); //判断一下 } else { myData = QSqlDatabase::addDatabase("QSQLITE"); } myData.setHostName("localhost"); myData.setUserName("Root"); myData.setPassword(""); myData.setDatabaseName("myData.db"); if(myData.open()) { qDebug() <<"数据库连接成功"<<endl; //取出创建的用户名,密码和手机号 QString signName = ui->signNameBtn->text(); QString signPassword = ui->signPassBtn->text(); QString signPhone = ui->signPhoneBtn->text(); //插入到数据库里面 QSqlQuery sql; sql.prepare("INSERT INTO users (userName, password, email)" "VALUES (:uerName, :password, :email)"); sql.bindValue(":userName", signName); //之前取出来的 Qstring的signName sql.bindValue(":password", signPassword); sql.bindValue(":email", signPhone); //数据库里面的第三个写的是邮箱,不好改,下次得注意 //提示数据插入成功没有 if(sql.exec()) { QMessageBox::information(this, "Successful", "Insert data successful"); }else { QMessageBox::information(this, "Not Inserted", "Data is not inserted "); } }else { QMessageBox::information(this, "Not connected", "database is not conntected"); } } ``` --- 头文件 ``` #include <QString> #include<QSqlQuery> #include <QDebug> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); //下个页面的指针 NextWindow* nextWin; private slots: void on_logInBtn_clicked(); //登录按钮 void on_signUp_clicked(); //注册按钮 private: Ui::MainWindow *ui; QSqlDatabase myData; }; #endif // MAINWINDOW_H ``` ![图片说明](https://img-ask.csdn.net/upload/201903/14/1552520451_927725.jpg) --- 我把错误打印出来了,`QSqlError("", "Parameter count mismatch", "")` 说是参数错误,我输出了一下从输入框获取的值,是成功的。所以应该是插入那一段代码有问题吧。但是我仔细看了一下我的数据文件,都是匹配的啊。。 ![图片说明](https://img-ask.csdn.net/upload/201903/14/1552548572_810358.jpg) ![图片说明](https://img-ask.csdn.net/upload/201903/14/1552548589_73200.jpg) ![图片说明](https://img-ask.csdn.net/upload/201903/14/1552548631_785784.jpg)

sqlite数据导出为csv格式19位数字是科学计数法怎么解决

如题,用sqlite存储了很多数据,写了个程序导出数据,学号为19位的数字,导出时就会出现科学计数法,请问这个问题该怎么解决

sqlite3中的数据库里面的信息如何导出为xml文件

sqlite3中的数据库里面的信息如何导出为xml文件sqlite3中的数据库里面的信息如何导出为xml文件sqlite3中的数据库里面的信息如何导出为xml文件sqlite3中的数据库里面的信息如何导出为xml文件

sqlite3语句导出到指定脚本,拜托大神们啦~

使用sqlite3 school.db.dump>school.sql将数据库导出到脚本,然而用记事本打开脚本后,里面没有我创建的表。哪里出问题啦?

使用android的SQLite数据库能存储多大数据

看到网上说SQLite数据库的大小是2TB,但是我觉得这个数据库不应该跟手机内存相联系吗? android上的SQLite数据库真的能容纳下2TB的数据吗???

SQLite数据库优化方案

有两个线程,一个是不停地从网络接收数据存入数据库中,另一个线程是根据不同的条件从数据库库中查询数据; 根据不同的日期创建的不同的一组数据库表; 插入或查询的数据量都比较大; 在插入数据库时查询数据会很慢甚至程序会崩溃。 请问有什么好的优化方案?

.db文件导入sqlite数据库出现乱码问题

求助: .db文件导入sqlite数据库出现乱码,有些数据表的的内容是正常的,有些显示的却是乱码,网上查了好多也没做出来,求大神指教

如何使用QT将sqlite的数据读取出,并显示在ui的界面上

如何使用QT将sqlite的数据读取出,并显示在ui的界面上

android studio3.2.1 无法导出sqlite数据库

![图片说明](https://img-ask.csdn.net/upload/201812/29/1546069534_341372.png)

sqlite数据库与mysql数据库

用c语言怎样把sqlite的数据库表中内容导入到mysq数据库表中![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/12.gif)

sqlite3数据库两个数据库文件表之间的复制

sqlite3怎样将A数据库中Table1的数据复制到B数据库的Table1中 数据量很大 用C++实现

打开和关闭SQLite数据库

我开发了一个android程序,经常用来访问本地数据库。这个数据库可以从不同的线程中访问,所以对于数据库有一个协调问题,我用的是open() 和 close() 方法。 public void open(){ mDb=mDbHelper.getWritableDatabase(); } public void close(){ mDb.close(); } 所以通常当我需要访问数据库执行操作时,就打开数据库,然后执行一些操作,最后关闭数据库。使用的代码如下: try { dbManager.open(); // database operation } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { dbManager.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } 但是,如果这段代码从不同的线程中使用(假使线程 A 和线程B),就会发生下面的情况: A thread: performs open() B thread: perfroms open() A thread: perfroms some operation A thread: performs close() B thread: try to perform some operation but it fails! 因此,唯一的解决方法是当程序开启时执行open(),程序停止是执行close()。我不知道这是不是一个好的解决方法? 实际上,getWritableDatabase() 方法(从open()中调用)的文档也说: Make sure to call close() when you no longer need the database 谁能告诉我一个可执行的解决方案?

navicat for sqlite 导出数据库过程报错

之前用的好好地,今天新建了一个带图片的表,导出过程就报错了。。。 ![图片说明](https://img-ask.csdn.net/upload/201605/10/1462866865_363770.png) 百度了很久,说是删除BDE重装,结果我硬是没有找到BDE,我现在该怎么做。

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问