QT5+sql server(ODBC)创建数据源并且连接数据库

qt5.5 msvc + sql server2008
登录ID:SQLproject
登录密码:mylocalhost
服务器ID:DELL-PC
数据库名:PhoneCount
数据库用户配置,首先创建个数据库 PhoneCount,【请忽略课程设计的名字~】
用户名字为SQLproject
接着
勾选之前创建的数据库
确认状态无误
如果出现错误18456那么检查下自己数据库授权以及登录方式
然后退出当前windows用户验证的登录
用刚才创建的用户登录还要注意这里的用户名要有创建表的权限,不然创建下面的表
tudent
会不成功
忘记登录截图了,但是登录是很简单的,因为是第一次登录,sql会要求你重新设置密码,也就是刚才创建用户设置的密码会取消了,然后设置新密码,那么登录就OK了。
那么接下来就是配置qt这边的数据源了。
打开电脑上的【数据源】ODBC
接着
然后输入我们刚才创建的用户
用户名:SQLproject
密码:localhost
然后更改默认数据库为刚才创建的数据库PhoneCount
然后
采用默认设置不需要修改。如果需要修改可以做适当调整比如加密保存文件路径之类的。
点击完成即可
最后测试数据源~弹出测试成功,So Nice。
然后在数据源之中(ODBC)
参考博客
http://blog.sina.com.cn/s/blog_a07a3f180101dg4g.html
百科
http://jingyan.baidu.com/article/86fae346ba946f3c49121a0e.html
http://jingyan.baidu.com/article/656db918faf80fe381249c1e.html
然后连接上去做测试的时候出现了
那么这时候你就要到自己的保存文件目录下去删除生成的debug/release文件。
查询相关驱动有没有装好
.pro中添加 QT += sql
用户信息表
create tablephoneuser(
mae char(8)notnull,
hone char(11)not null,
addr char(8) notnull,
ID char(18)  notnull primary key
insert phoneuser(name,phone,addr,ID)
values ('李华','18060843577','福建闽江','3522199807120049')
若数据库没有打开那么是无法添加的,但是可以查询数据库已有的信息。
管理员信息表
create tableadministrators(
umber char(8)primarykey,
ame   char(10),
assword char (8)
insert administrators(number,name,password)
values ('313106','manage','123456')
用Qstring中的arg替换字符串非常好用
Qstring("Insertintophoneuservalues('%1','%2','%3','%4')")
//连接数据库
QSqlDatabasedb=QSqlDatabase::addDatabase("QODBC")
db.setDatabaseName(QString("DRIVER={SQLSERVER};"
"SERVER=%1;"    //servername
"DATABASE=%2;"  //sqlname
"UID=%3;"       //loadid
"PWD=%4;"       //password
).arg("DELL-PC")
.arg("PhoneCount")
.arg("SQLproject")
.arg("mylocalhost")
if(!db.open())
//QMessageBox::about(this,"DatabaseError",db.lastError().text())
qDebug()<<"DatabaseError"
qDebug()<<db.lastError()
//DELL-PC  电脑名字
//PhoneCout 数据库名字
//SQLproject 登录的用户名
//mylocalhost 登录用户的密码
create tablecharge(
ame char(8)notnull,
Phone char(11)notnull primary key,
lance floatnotnull,
receiveble float not null,
receipts float not null
create tablebill(
Phone char(11)not null,
currentcost float not null,
calltime int not null,
callcost float not null
资源下载:http://download.csdn.net/detail/baidu_25109069/9388870
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于QtODBC的示例代码,用于连接数据库并获取数据以显示波形。 ```cpp #include <QtWidgets/QApplication> #include <QtGui/QPainter> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlQuery> #include <QtCore/QDebug> #include <QtCore/QVector> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 连接数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("ODBC数据源名称"); db.setUserName("用户名"); db.setPassword("密码"); if (!db.open()) { qWarning() << "连接数据库失败:" << db.lastError().text(); return -1; } // 获取数据 QSqlQuery query; if (!query.exec("SELECT * FROM 数据表名")) { qWarning() << "查询数据失败:" << query.lastError().text(); return -1; } // 将数据存储到 QVector 中 QVector<double> data; while (query.next()) { data.append(query.value(0).toDouble()); } // 绘制波形 int width = 800; int height = 600; QImage image(width, height, QImage::Format_RGB32); image.fill(Qt::white); QPainter painter(&image); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(QPen(Qt::black, 1)); double xScale = (double)width / data.size(); double yScale = (double)height / 100; QPointF lastPoint(0, height - data[0] * yScale); for (int i = 1; i < data.size(); i++) { QPointF currentPoint(i * xScale, height - data[i] * yScale); painter.drawLine(lastPoint, currentPoint); lastPoint = currentPoint; } // 显示波形 QLabel label; label.setPixmap(QPixmap::fromImage(image)); label.show(); return a.exec(); } ``` 需要根据实际情况修改数据库连接信息、查询语句、绘制波形的参数等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值