找回密码
 立即注册
收起左侧

qt+sqlserver 2000使用tableview控件无法显示数据

3
回复
8319
查看
[复制链接]
累计签到:5 天
连续签到:1 天
来源: 2013-8-8 15:13:14 显示全部楼层 |阅读模式
1Qter豆
各位大神:
       本人用qt creator+sqlserver 2000编程,使用tableview了控件,但该控件中无法显示需要的数据。通过调试,发现数据库已经建立了连接,并且已经读取了数据,但就是无法显示,不知道怎么回事?我的sql sever 2000中数据表和列名已经用英文表示了。

附上代码:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");        //下面例子连接到127.0.0.1上的sql server名为OJ的数据库上。 程序中指定此连接的名称为connection1           db = QSqlDatabase::addDatabase("QODBC", "connection1");           db.setHostName("127.0.0.1"); //如果dsn中已经含有SERVER,可以省略此句           db.setPort(1433);           QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=127.0.0.1;DATABASE=Qhis");           //如果已经设定DSN,可以写为QString::fromLocal8Bit("SQLSERVER_DSN")           db.setDatabaseName(dsn);           //即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤           db.setUserName("sa");           db.setPassword("");  if(db.open()) {        static QSqlQueryModel *model = new QSqlQueryModel(ui->tableView);        model->setQuery(QString("select * from doctor"));        model->setHeaderData(0,Qt::Horizontal,QObject::tr("name"));        model->setHeaderData(1,Qt::Horizontal,QObject::tr("age"));        model->setHeaderData(2,Qt::Horizontal,QObject::tr("**"));        ui->tableView->setModel(model);        ui->tableView->resizeColumnsToContents();        ui->tableView->resizeRowsToContents();        //db.close();    }}Widget::~Widget(){    delete ui;}
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

换成QSqlTableModel试试。
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2013-8-10 14:02:43 显示全部楼层
在网上找了个mysql的例子,经过修改后,可以连接SQL SERER 2000了。
回复

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-8-8 15:13:15 显示全部楼层
换成QSqlTableModel试试。
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2013-8-10 10:48:51 显示全部楼层
换了,还是不行。能否提供一个Qt+sql server2000编程的例子。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了