C# 如何在WinRT应用程序中使用SQLite查询参数?
我想在更新sql中使用查询参数,代码如下:C# 如何在WinRT应用程序中使用SQLite查询参数?,c#,sqlite,windows-8,windows-runtime,query-parameters,C#,Sqlite,Windows 8,Windows Runtime,Query Parameters,我想在更新sql中使用查询参数,代码如下: internal static int UpdatePhotosetName(string oldPhotosetName, string newPhotosetName) { String qryUpdateBaseTable = "UPDATE PhotraxBaseData SET photosetName = @newName WHERE photosetName = @oldName"; int rowsUpdated;
internal static int UpdatePhotosetName(string oldPhotosetName, string newPhotosetName)
{
String qryUpdateBaseTable = "UPDATE PhotraxBaseData SET photosetName = @newName WHERE photosetName = @oldName";
int rowsUpdated;
using (var db = new SQLite.SQLiteConnection(App.DBPath))
{
SQLiteCommand cmd = new SQLiteCommand(db);
cmd.CommandText = qryUpdateBaseTable;
cmd.Parameters.Add(new SQLiteParameter("@newName"));
cmd.Parameters.Add(new SQLiteParameter("@oldName"));
Command.Parameters["@newName"].Value = newPhotosetName;
Command.Parameters["@oldName"].Value = oldPhotosetName;
rowsUpdated = cmd.ExecuteNonQuery();
db.Close();
}
return rowsUpdated;
}
…但以下所有内容在当前上下文中都被标记为不可用/不存在:
Parameters
SQLiteParameter
Command
我确实安装了Sqlite Net(Sqlite.cs和SQLiteAsync.cs)和“Sqlite for Windows Runtime(Windows 8.1)”的3.8.7.1版
我根据我的发现编写了这段代码,但显然WinRT的方法与更为稳重的方法有很大不同
如何在WinRT应用程序中使用查询参数
更新
我认为,这不像LINQ穿的花式裤子那么性感,但它确实管用:
internal static int UpdatePhotosetName(string oldPhotosetName, string newPhotosetName)
{
String qryUpdateBaseTable = String.Format(
@"UPDATE PhotraxBaseData SET photosetName = '{0}' WHERE photosetName = '{1}'",
newPhotosetName, oldPhotosetName);
int rowsUpdated;
using (var db = new SQLite.SQLiteConnection(App.DBPath))
{
SQLiteCommand cmd = new SQLiteCommand(db);
cmd.CommandText = qryUpdateBaseTable;
rowsUpdated = cmd.ExecuteNonQuery();
}
return rowsUpdated;
}
没关系;无论如何,对于我的编译器来说,我已经太性感了
更新2
我想一个人永远不会太性感;毕竟,我会选择Thomas Levesque的超修身造型:
internal static int UpdatePhotosetName(string oldPhotosetName, string newPhotosetName)
{
String qryUpdateBaseTable = "UPDATE PhotraxBaseData SET photosetName = ? WHERE photosetName = ?";
int rowsUpdated;
using (var db = new SQLite.SQLiteConnection(App.DBPath))
{
rowsUpdated = db.Execute(qryUpdateBaseTable, newPhotosetName, oldPhotosetName); // look, ma: no superfluous code!
}
return rowsUpdated;
}
看看这些文档,您没有使用任何sqlite net。无需调用
db.Close
,因为db
已在使用块的中。
db.Execute("UPDATE PhotraxBaseData SET photosetName = ? WHERE photosetName = ?", newName, oldName);