QT中常用的增删查改CRUD操作(SQLite)

2 篇文章 0 订阅

QT中常用的增删查改CRUD操作:

我的测试DB中只有两个varchar型字段。适合方法传参形式crud

QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");


/*
* @prjectName  
* @brief        增
* @date         2020-12-17
*/
void ProjectManager::AddProject(QString Projectname)
{
    db.setDatabaseName("myDB.db");
    db.open();
    QSqlQuery query;
    query.prepare("INSERT INTO TABLE_PRO (PROJECT,TASK)"
                  "VALUES (:PROJECT, :TASK)");

    query.bindValue(":PROJECT",Projectname);
    query.exec();
}

/*
* @prjectName   
* @brief        (查询操作)
* @date         2020-12-17
*/
void ProjectManager::RefressProject()
{

    db.setDatabaseName("myDB.db");
    db.open();
    QSqlQuery q;
    q.exec("select PROJECT FROM TABLE_PRO");

    while (q.next()) {

        QString res = q.value("PROJECT").toString();
        qDebug()<<res<<" ";
    }



}
/*
* @prjectName  
* @brief        改
* @date         2020-12-17
* @param        传入更改后的名字
*/
void ProjectManager::EditProject(QString oldName,QString newName)
{
    db.setDatabaseName("myDB.db");
    db.open();
    QSqlQuery q;
    q.prepare("update TABLE_PRO set PROJECT = :nPROJECT where PROJECT = :oPROJECT");
    q.bindValue(":nPROJECT",newName);
    q.bindValue(":oPROJECT",oldName);
    q.exec();
}

/*
* @prjectName   
* @brief        删
* @date         2020-12-17
*/
void ProjectManager::DeleteProject(QString proName)
{
    db.setDatabaseName("myDB.db");
    db.open();
    QSqlQuery q;
    q.prepare("delete from TABLE_PRO where "
              "PROJECT = :PROJECT");
  q.bindValue(":PROJECT",proName);
    q.exec();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android StudioSQLite是一个常用的本地数据库,用于存储应用的数据。使用SQLite进行增删查改CRUD操作,可以通过Android的Java或Kotlin API来实现。以下是一些基本步骤: 1. **创建数据库**: - 首先,在`res`目录下创建`database`文件夹,然后在其创建一个`.db`文件(例如`app.db`),这是SQLite文件的实际位置。 - 在AndroidManifest.xml添加权限: ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 2. **连接数据库**: - 使用`SQLiteOpenHelper`类来管理数据库版本和事务。创建一个继承自它的子类,并重写`onCreate()`和`onUpgrade()`方法。 ```java public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "app.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } // ... } ``` 3. **CRUD操作**: - **插入数据** (Insert): - 创建SQL INSERT语句并调用`insert()`方法。 ```java ContentValues contentValues = new ContentValues(); contentValues.put("column_name", "value"); dbHelper.getWritableDatabase().insert("table_name", null, contentValues); ``` - **查询数据** (Read): - 使用`query()`方法执行SQL SELECT查询。 ```java Cursor cursor = dbHelper.rawQuery("SELECT * FROM table_name WHERE column_name = ?", new String[]{"value"}); while (cursor.moveToNext()) { // 获取结果 } cursor.close(); ``` - **更新数据** (Update): - 构造SQL UPDATE语句,并使用`update()`方法。 ```java int rowsAffected = dbHelper.getWritableDatabase().update("table_name", contentValues, "column_name = ?", new String[]{"value"}); ``` - **删除数据** (Delete): - 构造SQL DELETE语句,然后调用`delete()`方法。 ```java int deletedRows = dbHelper.getWritableDatabase().delete("table_name", "column_name = ?", new String[]{"value"}); ``` 4. **事务处理**: - 如果需要确保一组操作要么全部成功要么全部失败,可以使用`beginTransaction()`、`endTransaction()`以及`setTransactionSuccessful()`或`rollback()`。 5. **关闭连接**: - 在完成所有操作后,记得关闭`Cursor`和数据库连接。 ```java cursor.close(); dbHelper.close(); ``` **相关问题--:** 1. Android StudioSQLiteOpenHelper类有何作用? 2. 如何在Android Studio执行带有参数的SQL查询? 3. 在Android,如何正确处理数据库操作的异常?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值