c# - SQLite 记录是如何更新的?

标签 c# sqlite windows-8 windows-store-apps sqlite-net

接受此代码的语法:

public async Task UpdateLocationAsync(SOs_Locations locations)
{
    var db = new SQLiteAsyncConnection(SQLitePath);
    await db.UpdateAsync(locations);
}

...但我不理解 SQLite 引擎如何在简单地传递类实例时知道要更新哪条记录。是否是 SQLite 或 SQLite-net 引擎查看 ID 值并在幕后执行(SQLese):

UPDATE SOs_Locations
Set Bla = Bla, etc.
WHERE ID = locations.Id

?

最佳答案

这正是它的作用。方法来源可以查看here :

var q = string.Format ("update \"{0}\" set {1} where {2} = ? ", map.TableName, string.Join (",", (from c in cols
        select "\"" + c.Name + "\" = ? ").ToArray ()), pk.Name);

当然,如果您需要更多控制权,您始终可以执行自己的 SQL:

db.ExecuteAsync("UPDATE SOs_Locations Set Bla = ?, WHERE ID = ?", bla, id);

关于c# - SQLite 记录是如何更新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14007891/

相关文章:

c# - 如何从某个端口上的服务器获取所有可用链接?

c# - WPF:在没有清除/添加的情况下替换数据绑定(bind)集合内容

windows-8 - Windows应用商店应用(Windows 8)与UWP

c# - ftp上传太大

database - 将 SQL 数据插入 SQLite 中的链接(外键)表

python - 为 Python 3.6 安装 GDAL 时出现 ImportError

用于查找按值分组的最频繁值的 SQL 查询

C++ LogIn.exe 在终端中崩溃

.net - 可以在常规 .Net 应用程序中使用 Toast 通知吗?

c# - 如何替换二进制文件中的 unicode 字符串?