嵌入式 QT创建数据库以及数据库基本操作问题

原创 2013年12月02日 14:39:36

qt怎样创建数据库以及数据库的操作

 
staticboolcreateConnection()
{QSqlDatabasedb=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mytest.db");
if(!db.open())
returnfalse;
QSqlQueryquery;
//query.exec(QObject::tr("createtablestudent(idintprimarykey,namevchar)"));
//query.exec(QObject::tr("insertintostudentvalues(0,'刘')"));
////query.exec(QObject::tr("insertintostudentvalues(1,'刚')"));
//query.exec(QObject::tr("insertintostudentvalues(2,'红')"));
//query.prepare("insertintostudentvalues(?,?)");
//-------------------------------------------------------
//通过下面这段代码可以实现向数据库插入变量
//--------------------------------------------------------
QVariantListages;
intx1,x2,x3,x4;
x1=12;
x2=13;
x3=14;
x4=15;
ages<<x1<<x2<<x3<<x4;
query.addBindValue(ages);
QVariantListnames;
names<<QObject::tr("小王")<<QObject::tr("小明")<<QObject::tr("小张")<<QObject::tr("小新");//如果要提交空串,用QVariant(QVariant::String)代替名字
query.addBindValue(names);
if(!query.execBatch())//进行批处理,如果出错就输出错误
qDebug()<<query.lastError();
returntrue;
}
#endif//DATABASE_H
然后用QSqlTableModel实现数据库数据显示
知道怎么操作数据库了,就会很快类推到相关的操作。只是开始不知道的时候,不知道从哪下手。GOOGLE 后也很少有人会贴代码让大家

 





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





 





  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.  
  插入操作 
  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.  
  

相关文章推荐

mysql数据库应用(五)----表的基本操作(创建,删除,显示)

------------------------------表的基本概念------------------------------------------ 表是包含数据库中所有数据的数据库对象 ...

数据库基本操作(创建表和添加触发器)

简述: 复习一下数据库基本操作创建表和触发器 1. 创建一张表 注意: 一个表只能有一个PRIMARY KEY 例如下面我加了两个primary key create table t...
  • anialy
  • anialy
  • 2012年10月23日 01:29
  • 7524

数据库基本操作SQL(创建表 添加主键 添加列的常用语句)

数据库基本操作SQL(创建表 添加主键 添加列的常用语句) 以下为SQL语句: 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1)...

MySQL数据库——创建约束基本操作

约束是为了保证数据的完整性和一致性--对一个数据列建立的约束,就是列级约束 --对多个数据列建立的约束,就是表级约束 --列级约束既可以在列定义时声明,也可以在列定义后声明, --表级约束只能在列定义...

MySQL数据库表的基本操作——创建表CREATE TABLE

在操作数据库表之前要先选择数据库,USE

MySQL基本操作:数据库的创建、查询、更新、插入、删除表格

MySQL体积小、响应速度快、成本低,是时下最流行的关系型数据库管理系统之一,受到众多用户的追捧和喜爱。本文对MySQL的基本操作,如创建数据库、创建表格、查询、删除进行简单的总结。...

对orcale数据库中表的创建以及对表中数据的基本操作

1.在自己创建的用户方案下用sql语句创建表student,存放在users表空间中,用sql语句添加如下记录;   01     要求的约束条件有: ...

MySQL数据库——‘多表’的基本操作(更新、删除、创建写入)

1.多表更新--基本格式 UPDATE table_references SET col_name1 = {expr1|DEFAULT} [,col_name2 = {expr2|DEFAULT}]....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 QT创建数据库以及数据库基本操作问题
举报原因:
原因补充:

(最多只允许输入30个字)