加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

QT 数据库操作(创建,插入。。)

(2014-08-13 23:59:24)
标签:

365

it

createdatabase

qsqlquery

分类: QT

知道怎么操作数据库了,就会很快类推到相关的操作。只是开始不知道的时候,不知道从哪下手。GOOGLE 后也很少有人会贴代码让大家

 

去参考。下面就简单的贴下自己写的 创建和插入的操作方法。会写数据库的童鞋知道语法了 就知道怎么写了。。。

 

 

[c-sharp] view plaincopy
  1. bool database::createDatabase()  
  2.  
  3.     QSqlQuery query;   // 此处请查询 query的相关操作  
  4.     qDebug() << "Start to create table..." 
  5.     //create table: User  
  6.     query.exec("CREATE TABLE [User] [userId] VARCHAR(40) NOT NULL, [username] VARCHAR(40) NOT NULL, [email] VARCHAR(40), [password] VARCHAR(40), [city] VARCHAR(20), PRIMARY KEY([userId]) )"); // 一定注意不要拼写错误,引号内是不提示拼写错误的。自己也感觉这有点不方便  
  7.     //create table: Connect  
  8.     query.exec("CREATE TABLE [Connect] [LeftUser] VARCHAR(40) NOT NULL, [RightUser] VARCHAR(40) NOT NULL, [relation] INTEGER DEFAULT '0' NULL, PRIMARY KEY ([LeftUser], [RightUser]))");  
  9.     if (query.lastError().isValid())  
  10.      
  11.         qDebug() << query.lastError();  
  12.         return false 
  13.      
  14.     else  
  15.      
  16.         qDebug() << "Create database successfully." 
  17.      
  18.     return true 
  19.  
 

 

插入操作

 

 

[c-sharp] view plaincopy
  1. bool database::adduser( User user  
  2.  
  3.     if (!db.isOpen())  
  4.      
  5.         createconnection();  
  6.      
  7.     QSqlQuery query;  
  8.     qDebug() << "start to insert data" 
  9.     query.exec("INSERT INTO [User] userId, username, email, password, city) VALUES(?,?,?,?,?)");  
  10.     QVariantList userId;  
  11.     userId << user.getUserId();  
  12.     query.addBindValue(userId);  
  13.     QVariantList username;  
  14.     username << user.getUserName();  
  15.     query.addBindValue(username);  
  16.     QVariantList email;  
  17.     email << user.getEmail();  
  18.     query.addBindValue(email);  
  19.     QVariantList password;  
  20.     password << user.getPassword();  
  21.     query.addBindValue(password);  
  22.     QVariantList city;  
  23.     city << user.getCity();  
  24.     query.addBindValue(city);  
  25.     try  
  26.      
  27.         if (!query.execBatch())  
  28.          
  29.             qDebug() << query.lastQuery();  
  30.             qDebug() << query.lastError();  
  31.             return NULL;  
  32.          
  33.      
  34.     catch(...)  
  35.      
  36.         QMessageBox::critical(0, "Add New Node error!" 
  37.                               "Unable to add new Node!/n/n"  
  38.                                        "Click Cancel to exit."QMessageBox::Cancel);  
  39.      
  40.     if!UpdateConnectTable(user.getUserId(),user.getUserId(),2))  
  41.      
  42.         QMessageBox::critical(0,"","Update table Connect error");  
  43.         return NULL;  
  44.      
  45.     return true 
  46.  
 

 

 

照猫画虎的本事,大家应该是应该有的吧。呵呵

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有