在 SQLite-WinRT 包装器中使用 'Update' 或 'Delete' 查询获取受影响的行数
Get number of rows affected using 'Update' or 'Delete' query in SQLite-WinRT wrapper
如何获取 SQLite-WinRT 包装器中针对 Delete 或 Update 查询受影响的行数?这是 blog,它描述了 Windows 运行时应用程序中 SQLite-WinRT 包装器的 CRUD 操作。
一些代码片段是:
var dbFile = await StorageFile.GetFileFromPathAsync(dbPath);
db = new SQLiteWinRT.Database(dbFile);
await db.OpenAsync(SqliteOpenMode.OpenReadWrite);
await db.ExecuteStatementAsync("DELETE FROM Customer WHERE Name = 'abc'");
谢谢!
SQLite-WinRT 代码库不使用 sqlite3_changes()
或 sqlite3_total_changes()
SQLite 提供的函数来计算受影响的记录,因此似乎没有直接 API 得到那个数字。
但是 SQLite 具有 changes() 函数,因此您可以尝试在 DELETE
之后发出 SELECT CHANGES()
查询并读取返回值(使用 db.PrepareStatementAsync
、stmt.StepAsync
和 stmt.GetIntAt
).
(目前无法测试此方法)。
- 您可以计算受 cmd.ExecuteNonQuery() 影响的行数,如下所示
int rowCount = Convert.ToInt32(cmd.ExecuteNonQuery());
- rowcount 将不包含因插入或更新而受影响的行
如何获取 SQLite-WinRT 包装器中针对 Delete 或 Update 查询受影响的行数?这是 blog,它描述了 Windows 运行时应用程序中 SQLite-WinRT 包装器的 CRUD 操作。
一些代码片段是:
var dbFile = await StorageFile.GetFileFromPathAsync(dbPath);
db = new SQLiteWinRT.Database(dbFile);
await db.OpenAsync(SqliteOpenMode.OpenReadWrite);
await db.ExecuteStatementAsync("DELETE FROM Customer WHERE Name = 'abc'");
谢谢!
SQLite-WinRT 代码库不使用 sqlite3_changes()
或 sqlite3_total_changes()
SQLite 提供的函数来计算受影响的记录,因此似乎没有直接 API 得到那个数字。
但是 SQLite 具有 changes() 函数,因此您可以尝试在 DELETE
之后发出 SELECT CHANGES()
查询并读取返回值(使用 db.PrepareStatementAsync
、stmt.StepAsync
和 stmt.GetIntAt
).
(目前无法测试此方法)。
- 您可以计算受 cmd.ExecuteNonQuery() 影响的行数,如下所示
int rowCount = Convert.ToInt32(cmd.ExecuteNonQuery());
- rowcount 将不包含因插入或更新而受影响的行