【问题标题】:how to execute transaction in SQLitePCL如何在 SQLitePCL 中执行事务
【发布时间】:2020-07-31 15:38:16
【问题描述】:

我正在尝试将我的一个应用从 macOS 迁移到 Windows 10 UWP。

我的连接 sqlite 的代码

using SQLitePCL;
//...
SQLiteConnection connection;
connection = new SQLiteConnection(path);

但是在连接的方法中,我找不到任何关于执行事务的命令

我是 Windows 10 UWP 和 c# 的新手

欢迎评论

【问题讨论】:

    标签: c# sqlite uwp


    【解决方案1】:

    您可以使用类似“BEGIN TRANSACTION”的命令;

    此代码是项目SQLitePCL的单元测试之一:

                using (var connection = new SQLiteConnection(this.databaseRelativePath))
                {
                    using (var statement = connection.Prepare("DROP TABLE IF EXISTS TestQuery;"))
                    {
                        statement.Step();
                    }
    
                    using (var statement = connection.Prepare("CREATE TABLE TestQuery(id INTEGER, i INTEGER, t TEXT, r REAL);"))
                    {
                        statement.Step();
                    }
    
                    var beginTransactionCommand = "BEGIN TRANSACTION";
    
                    using (var statement = connection.Prepare(beginTransactionCommand))
                    {
                        statement.Step();
                    }
    
                    foreach (var record in insertedRecords)
                    {
                        var command = "INSERT INTO TestQuery(id, i, t, r) VALUES(" + record.Item1.ToString(this.invClt) + "," + record.Item2.ToString(this.invClt)
                            + ",'" + record.Item3 + "'," + record.Item4.ToString(this.invClt) + ");";
    
                        using (var statement = connection.Prepare(command))
                        {
                            statement.Step();
                        }
                    }
    
                    var commitTransactionCommand = "COMMIT TRANSACTION";
    
                    using (var statement = connection.Prepare(commitTransactionCommand))
                    {
                        statement.Step();
                    }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 2021-06-20
      • 2018-12-22
      • 2012-12-21
      • 1970-01-01
      • 2010-11-07
      • 2016-04-19
      • 1970-01-01
      相关资源
      最近更新 更多