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

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.  
  插入操作 
[c-sharp] view plain copy print ?
  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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值