我上了Windows Phone 8.1的應用程序使用SqlitePCL, 我有查詢,選擇和插入工作,但由於某種原因,刪除和更新不工作刪除和SQLite中更新語句不工作
這裏是我的代碼:
SELECT語句:
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
{
}
而且現在不工作代碼:
DELETE語句:
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();
}
}
Update語句:
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();
}
}
UPDATE: 看來,Windows Phone上的sqlite的PCL不支持命令「更新」,並且選擇或刪除WHERE命令時只支持「WHERE id =?」而不是像「WHERE name = belal」之類的東西。
5到8傳遞給你的'UPDATE傳遞給你的'DELETE'聲明任何參數,或任何的參數'聲明,null? – 2015-02-07 21:50:21
不,我檢查。有什麼想法嗎? – Belalm 2015-02-07 22:42:10
你的第一個錯誤是'catch {}'。永遠不要這樣做;它丟棄錯誤然後繼續,如果沒有出錯。但有些事情出錯了,你扔掉了錯誤信息。您需要查看異常情況來診斷問題。 – 2015-02-09 19:30:39