可能重复:
SQLite - UPSERT不是INSERT 或 REPLACE
如何更新表中的行或如果它不存在则插入它?
我正在使用 Windows 8 发布预览版和 C#(VS 2012) 开发 Metro 应用程序,我是 SQLite 新手,我在我的应用程序中集成了 SQLite 3.7.13,它运行良好,在 MYSQL 中我们喜欢
INSERT INTO tablename (id, name)
VALUES (21, 'foo')
ON DUPLICATE KEY UPDATE name = 'boo';
我们如何使用 Linq 表达式在 SQLite 3 中实现这一点,现在我正在插入记录并SQLiteException
在异常时捕获和更新该记录。请注意下面的代码
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,"Student.db");
DateTime LastUpdated = DateTime.UtcNow;
using (var db = new SQLite.SQLiteConnection(dbPath))
{
try
{
db.Insert(new studentRecord() { sid = 21, name = 'foo', last_updated = LastUpdated });
}
catch(SQLite.SQLiteException ex)
{
db.Update(new studentRecord() { sid = 21, name = 'boo', last_updated = LastUpdated });
}
}
studentRecord
我的表名在哪里。我不确定这是正确的方法,有什么方法可以在单个查询中实现,请帮助我。提前致谢