【发布时间】:2015-02-07 21:24:53
【问题描述】:
我在 windows phone 8.1 应用程序上使用 SqlitePCL, 我有查询选择和插入工作,但由于某种原因删除和更新不起作用
这是我的代码:
选择语句:
public static itemPassword[] AllGetItemPassword()
{
var db = App.conn;
int numbofPass = 0;
itemPassword[] itmpass = null;
try
{
using (var statement = db.Prepare("SELECT nameWeb, username, password, link FROM Passwords"))
{
while (statement.Step() == SQLiteResult.ROW)
{
numbofPass++;
}
}
}
catch
{
}
插入语句:
public void insertToDB(String usernameWeb, String userusername, String userpassword, String userlink)
{
var db = App.conn;
try
{
using (var pass = db.Prepare("INSERT INTO Passwords (nameWeb, username, password, link) VALUES (?,?,?,?)"))
{
pass.Bind(1, usernameWeb);
pass.Bind(2, "Username: " + userusername);
pass.Bind(3, "Password: " + userpassword);
pass.Bind(4, "Link: " + userlink);
pass.Step();
}
}
catch
{
}
现在不工作的代码:
删除语句:
public static void DeleteRecord12(string webname, string username , string password, string link)
{
var db = App.conn;
try
{
using (var pass = db.Prepare("DELETE FROM Passwords WHERE webname = ? AND username = ? AND password = ? AND link = ?"))
{
pass.Bind(1, webname);
pass.Bind(2, username);
pass.Bind(3, password);
pass.Bind(4, link);
pass.Step();
}
}
catch (Exception ex)
{
ex.GetType();
}
}
更新声明:
public void UpdateRecord(string webname, string username, string password, string link,string Newwebname, string Newusername, string Newpassword, string Newlink)
{
var db = App.conn;
try
{
using (var pass = db.Prepare("UPDATE Passwords SET webname = ?, username = ?, password = ?, link = ? WHERE webname = ? AND username = ? AND password = ? AND link = ?"))
{
pass.Bind(1, Newwebname);
pass.Bind(2, Newusername);
pass.Bind(3, Newpassword);
pass.Bind(4, Newlink);
pass.Bind(5, webname);
pass.Bind(6, username);
pass.Bind(7, password);
pass.Bind(8, link);
pass.Step();
}
}
catch (Exception ex)
{
ex.GetType();
}
}
更新: windows phone 上的 sqlite Pcl 似乎不支持“update”命令,在选择或删除 WHERE 命令时只支持“WHERE id=?”而不是像“WHERE name=belal”这样的其他东西。
【问题讨论】:
-
是否有任何参数传递给您的
DELETE语句,或任何参数5 到8 是否传递给您的UPDATE语句,为空? -
不,我检查过。有什么想法吗?
-
你的第一个错误是
catch {}。永远不要那样做;它丢弃错误然后继续,好像没有出错一样。但是确实出了点问题,你扔掉了错误信息。您需要查看异常来诊断问题。