首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt QSqlDatabase

Qt QSqlDatabase
EN

Stack Overflow用户
提问于 2014-10-28 13:20:22
回答 1查看 989关注 0票数 0

搜索了一整天之后,我找不到问题的答案。我的问题是:为什么ODBC驱动程序返回第二个值,而不是第一个,代码是从format获取的。

在while循环中,我在第一步看到值为2,而在excel中,我有1。为什么?

感谢你的任何帮助

守则是:

代码语言:javascript
运行
复制
srcdb.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + QString(getSettings("folderpath") + '/' + file));
        if(srcdb.open()) {
            QSqlQuery query("SELECT * FROM [" + QString("Sheet1") + "$A1:A3]"); // Select range, place A1:B5 after $
            while (query.next()) {
                QString column = query.value(0).toString();
                qDebug() << column;
            }
        }
EN

回答 1

Stack Overflow用户

发布于 2014-10-28 15:20:59

在维基中发现了这个:

默认情况下,OBDC使用第一行作为列的名称,可以在连接设置中使用“FirstRowHasNames”选项更改此选项。请记住,您使用的是数据库,而且每个列都有自己的数据类型。因此,如果第二行包含文本,第三行包含数字,sql将从中选择一种数据类型。如果几行包含文本,其余行包含浮点数,则sql将使文本出现并使数字消失。

这就是为什么"2“被显示为第一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26609440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档