/// <summary> /// Metoda dodająca nowy Produkt do bazy danych. Metoda jest używana w procesie ETL. /// Dodatkowo zwracany jest ID dodanego urządzenia. /// </summary> /// <param name="db"></param> /// <param name="deviceName">Nazwa produktu pobrana w procesie ETL</param> /// <param name="manufacturer">Producent produktu pobrany w procesie ETL</param> /// <param name="others">Inne dane produktu pobrane w procesie ETL</param> /// <returns></returns> public async static Task <long> InsertDevice(ISQLiteConnection db, string deviceName, string manufacturer, string others) { try { await Task.Run(() => { using (var devicemt = db.Prepare("INSERT INTO Device (Name, Manufacturer, Others) VALUES (?, ?, ?)")) { devicemt.Bind(1, deviceName); devicemt.Bind(2, manufacturer); devicemt.Bind(3, others); devicemt.Step(); Debug.WriteLine("INSERT completed OK for device " + deviceName); } } ); } catch (Exception ex) { Debug.WriteLine(ex.Message); return(0); } using (var idstmt = db.Prepare("SELECT last_insert_rowid()")) { idstmt.Step(); { Debug.WriteLine("INSERT ID for device " + deviceName + ": " + (long)idstmt[0]); return((long)idstmt[0]); } throw new Exception("Couldn't get inserted ID"); }; }
private async static Task <long> InsertCustomer(ISQLiteConnection db, string customerName, string customerCity, string customerContact) { try { await Task.Run(() => { using (var custstmt = db.Prepare("INSERT INTO Customer (Name, City, Contact) VALUES (?, ?, ?)")) { custstmt.Bind(1, customerName); custstmt.Bind(2, customerCity); custstmt.Bind(3, customerContact); custstmt.Step(); Debug.WriteLine("INSERT completed OK for customer " + customerName); } } ); } catch (Exception ex) { Debug.WriteLine(ex.Message); return(0); } using (var idstmt = db.Prepare("SELECT last_insert_rowid()")) { idstmt.Step(); { Debug.WriteLine("INSERT ID for customer " + customerName + ": " + (long)idstmt[0]); return((long)idstmt[0]); } throw new Exception("Couldn't get inserted ID"); }; }
public void Delete(int id) { const string DELETE_SQL = @"DELETE FROM ACategory WHERE ID=?"; using (var statement = con.Prepare(DELETE_SQL)) { statement.Bind(1, id); statement.Step(); } }
/// <summary> /// Metoda ma na celu zwrócenie ID dowolnego produktu - zależnie od potrzeb. /// Używana w czasie dodawania komentarzy. Dzięki niej produkty nie dublują się. /// </summary> /// <param name = "db" ></param> ///<param name = "deviceName" > Nazwa produktu</param> /// <param name="manufacturer">Producent produktu</param> /// <param name="others">Inne dane produktu</param> /// <returns></returns> public async static Task <long> GetDeviceId(ISQLiteConnection db, string deviceName, string manufacturer, string others) { long devIdReturn = 0; try { await Task.Run(() => { using (var deviceId = db.Prepare("SELECT Id FROM Device WHERE Name = ? AND Manufacturer = ? AND Others = ?")) { deviceId.Bind(1, deviceName); deviceId.Bind(2, manufacturer); deviceId.Bind(3, others); deviceId.Step(); Debug.WriteLine(" GET ID For " + deviceName); try { return(devIdReturn = (long)deviceId[0]); } catch { return(devIdReturn = 0); } } }); Debug.WriteLine("ID is: " + devIdReturn); return(devIdReturn); } catch { return(devIdReturn); } }
/// <summary> /// Executes a single statement on a connection. /// </summary> /// <param name="connection"></param> /// <param name="sql"></param> /// <returns></returns> public static SQLiteResult Execute(this ISQLiteConnection connection, string sql) { using (var statement = connection.Prepare(sql)) { return(statement.Step()); } }
public ObservableCollection <TItemType> GetAllItems() { var items = new ObservableCollection <TItemType>(); using (var statement = sqlConnection.Prepare(GetSelectAllSql())) { FillSelectAllStatement(statement); while (statement.Step() == SQLiteResult.ROW) { var item = CreateItem(statement); items.Add(item); } } return(items); }
/// <summary> /// Metoda dodająca nowy komentarz dla danego produktu. Używana w procesie ETL. /// </summary> /// <param name="db"></param> /// <param name="deviceID">Id urządzenia z bazy danych</param> /// <param name="zalety">Zalety wymienione w komentarzu, pobrane w procesie ETL</param> /// <param name="wady">Wady wymienione w komentarzu, pobrane w procesie ETL</param> /// <param name="autor">Autor komentarza, pobrany w procesie ETL</param> /// <param name="tekstOpinii">Tekst Opinii pobrany w procesie ETL</param> /// <param name="gwiazdki">Ocena wystawiona przez autora opinii. (Zaokrąglana do pełnych liczb w dół)</param> /// <param name="data">Data dodania opinii na stonę</param> /// <param name="polecam">Czy produkt jest polecany przez kupującego. Pole dotyczy jedynie strony Ceneo</param> /// <param name="przydatnosc">Ocena przydatności komentarza.</param> /// <param name="pochodzenie">Pochodzenie komentarza. Dzięki temu łatwo można odróżnić komentarze pobrane z Ceneo, od komentarzy pobranych ze Skąpca.</param> /// <returns></returns> public static Task InsertComment(ISQLiteConnection db, long deviceID, string zalety, string wady, string autor, string tekstOpinii, string gwiazdki, string data, string polecam, string przydatnosc, string pochodzenie) { return(Task.Run(() => { using (var commentmt = db.Prepare("INSERT INTO Comment (DeviceId, Zalety, Wady, Autor, TekstOpinii, Gwiazdki, Data, Polecam, Przydatnosc, Pochodzenie) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { // Reset the prepared statement so we can reuse it. commentmt.ClearBindings(); commentmt.Reset(); commentmt.Bind(1, deviceID); commentmt.Bind(2, zalety); commentmt.Bind(3, wady); commentmt.Bind(4, autor); commentmt.Bind(5, tekstOpinii); commentmt.Bind(6, gwiazdki); commentmt.Bind(7, data); commentmt.Bind(8, polecam); commentmt.Bind(9, przydatnosc); commentmt.Bind(10, pochodzenie); commentmt.Step(); Debug.WriteLine("INSERT Project completed OK for comment " + deviceID); } } )); }
public SQLiteTransaction(ISQLiteConnection connection) { _connection = connection; using (var statement = connection.Prepare("BEGIN TRANSACTION")) { statement.Step().ThrowOnFailure("Failed to initiate a transaction"); } }
/// <summary> /// Executes multiple statements on a connnection. /// Return values are ignored. /// </summary> /// <param name="connection"></param> /// <param name="sqlStatements"></param> public static void Execute(this ISQLiteConnection connection, params string[] sqlStatements) { foreach (var sql in sqlStatements) { using (var statement = connection.Prepare(sql)) { statement.Step(); } } }
private static Task InsertProject(ISQLiteConnection db, long customerID, string name, string description, DateTime duedate) { return(Task.Run(() => { using (var projstmt = db.Prepare("INSERT INTO Project (CustomerId, Name, Description, DueDate) VALUES (?, ?, ?, ?)")) { // Reset the prepared statement so we can reuse it. projstmt.ClearBindings(); projstmt.Reset(); projstmt.Bind(1, customerID); projstmt.Bind(2, name); projstmt.Bind(3, description); projstmt.Bind(4, duedate.ToString("yyyy-MM-dd HH:mm:ss")); projstmt.Step(); Debug.WriteLine("INSERT Project completed OK for customer " + customerID); } } )); }
/// <summary> /// Metoda pobierająca ID dowolnego komentarza. Jest używana w czasie dodawania nowych komentarzy. /// Dzięki niej komentarze nie są dublowane. W celu przyśpieszenia zapytania, nie są sprawdzane wszystkie pola. /// </summary> /// <param name="db"></param> /// <param name="deviceId">Id urządzenia</param> /// <param name="zalety">Zalety wymienione w komentarzu</param> /// <param name="wady">Wady wymienione w komentarzu</param> /// <param name="autor">Autor komentarza</param> /// <param name="tekstOpinii">Tekst Opinii</param> /// <returns></returns> public async static Task <long> GetCommentId(ISQLiteConnection db, int deviceId, string zalety, string wady, string autor, string tekstOpinii) { long commIdReturn = 0; try { await Task.Run(() => { using (var commId = db.Prepare("SELECT Id FROM Comment WHERE DeviceId = ? AND Zalety = ? AND Wady = ? AND Autor = ? AND TekstOpinii = ?")) { commId.Bind(1, deviceId); commId.Bind(2, zalety); commId.Bind(3, wady); commId.Bind(4, autor); commId.Bind(5, tekstOpinii); commId.Step(); Debug.WriteLine(" GET ID For " + autor); try { return(commIdReturn = (long)commId[0]); } catch { return(commIdReturn = 0); } } }); Debug.WriteLine("Comment ID is: " + commIdReturn); return(commIdReturn); } catch { return(commIdReturn); } }
/// <summary> /// Metoda dodająca nowy Produkt do bazy danych. Metoda jest używana w procesie ETL. /// Dodatkowo zwracany jest ID dodanego urządzenia. /// </summary> /// <param name="db"></param> /// <param name="deviceName">Nazwa produktu pobrana w procesie ETL</param> /// <param name="manufacturer">Producent produktu pobrany w procesie ETL</param> /// <param name="others">Inne dane produktu pobrane w procesie ETL</param> /// <returns></returns> public async static Task<long> InsertDevice(ISQLiteConnection db, string deviceName, string manufacturer, string others) { try { await Task.Run(() => { using (var devicemt = db.Prepare("INSERT INTO Device (Name, Manufacturer, Others) VALUES (?, ?, ?)")) { devicemt.Bind(1, deviceName); devicemt.Bind(2, manufacturer); devicemt.Bind(3, others); devicemt.Step(); Debug.WriteLine("INSERT completed OK for device " + deviceName); } } ); } catch (Exception ex) { Debug.WriteLine(ex.Message); return 0; } using (var idstmt = db.Prepare("SELECT last_insert_rowid()")) { idstmt.Step(); { Debug.WriteLine("INSERT ID for device " + deviceName + ": " + (long)idstmt[0]); return (long)idstmt[0]; } throw new Exception("Couldn't get inserted ID"); }; }
private static Task InsertProject(ISQLiteConnection db, long customerID, string name, string description, DateTime duedate) { return Task.Run(() => { using (var projstmt = db.Prepare("INSERT INTO Project (CustomerId, Name, Description, DueDate) VALUES (?, ?, ?, ?)")) { // Reset the prepared statement so we can reuse it. projstmt.ClearBindings(); projstmt.Reset(); projstmt.Bind(1, customerID); projstmt.Bind(2, name); projstmt.Bind(3, description); projstmt.Bind(4, duedate.ToString("yyyy-MM-dd HH:mm:ss")); projstmt.Step(); Debug.WriteLine("INSERT Project completed OK for customer " + customerID); } } ); }
private async static Task<long> InsertCustomer(ISQLiteConnection db, string customerName, string customerCity, string customerContact) { try { await Task.Run(() => { using (var custstmt = db.Prepare("INSERT INTO Customer (Name, City, Contact) VALUES (?, ?, ?)")) { custstmt.Bind(1, customerName); custstmt.Bind(2, customerCity); custstmt.Bind(3, customerContact); custstmt.Step(); Debug.WriteLine("INSERT completed OK for customer " + customerName); } } ); } catch (Exception ex) { Debug.WriteLine(ex.Message); return 0; } using (var idstmt = db.Prepare("SELECT last_insert_rowid()")) { idstmt.Step(); { Debug.WriteLine("INSERT ID for customer " + customerName + ": " + (long)idstmt[0]); return (long)idstmt[0]; } throw new Exception("Couldn't get inserted ID"); }; }
/// <summary> /// Metoda dodająca nowy komentarz dla danego produktu. Używana w procesie ETL. /// </summary> /// <param name="db"></param> /// <param name="deviceID">Id urządzenia z bazy danych</param> /// <param name="zalety">Zalety wymienione w komentarzu, pobrane w procesie ETL</param> /// <param name="wady">Wady wymienione w komentarzu, pobrane w procesie ETL</param> /// <param name="autor">Autor komentarza, pobrany w procesie ETL</param> /// <param name="tekstOpinii">Tekst Opinii pobrany w procesie ETL</param> /// <param name="gwiazdki">Ocena wystawiona przez autora opinii. (Zaokrąglana do pełnych liczb w dół)</param> /// <param name="data">Data dodania opinii na stonę</param> /// <param name="polecam">Czy produkt jest polecany przez kupującego. Pole dotyczy jedynie strony Ceneo</param> /// <param name="przydatnosc">Ocena przydatności komentarza.</param> /// <param name="pochodzenie">Pochodzenie komentarza. Dzięki temu łatwo można odróżnić komentarze pobrane z Ceneo, od komentarzy pobranych ze Skąpca.</param> /// <returns></returns> public static Task InsertComment(ISQLiteConnection db, long deviceID, string zalety, string wady, string autor, string tekstOpinii, string gwiazdki, string data, string polecam, string przydatnosc, string pochodzenie) { return Task.Run(() => { using (var commentmt = db.Prepare("INSERT INTO Comment (DeviceId, Zalety, Wady, Autor, TekstOpinii, Gwiazdki, Data, Polecam, Przydatnosc, Pochodzenie) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { // Reset the prepared statement so we can reuse it. commentmt.ClearBindings(); commentmt.Reset(); commentmt.Bind(1, deviceID); commentmt.Bind(2, zalety); commentmt.Bind(3, wady); commentmt.Bind(4, autor); commentmt.Bind(5, tekstOpinii); commentmt.Bind(6, gwiazdki); commentmt.Bind(7, data); commentmt.Bind(8, polecam); commentmt.Bind(9, przydatnosc); commentmt.Bind(10, pochodzenie); commentmt.Step(); Debug.WriteLine("INSERT Project completed OK for comment " + deviceID); } } ); }
/// <summary> /// Metoda ma na celu zwrócenie ID dowolnego produktu - zależnie od potrzeb. /// Używana w czasie dodawania komentarzy. Dzięki niej produkty nie dublują się. /// </summary> /// <param name = "db" ></param> ///<param name = "deviceName" > Nazwa produktu</param> /// <param name="manufacturer">Producent produktu</param> /// <param name="others">Inne dane produktu</param> /// <returns></returns> public async static Task<long> GetDeviceId(ISQLiteConnection db, string deviceName, string manufacturer, string others) { long devIdReturn = 0; try { await Task.Run(() => { using (var deviceId = db.Prepare("SELECT Id FROM Device WHERE Name = ? AND Manufacturer = ? AND Others = ?")) { deviceId.Bind(1, deviceName); deviceId.Bind(2, manufacturer); deviceId.Bind(3, others); deviceId.Step(); Debug.WriteLine(" GET ID For " + deviceName); try { return devIdReturn = (long)deviceId[0]; } catch { return devIdReturn = 0; } } }); Debug.WriteLine("ID is: " + devIdReturn); return devIdReturn; } catch { return devIdReturn; } }
public long GetNextId(string tableName) { using (ISQLiteStatement prog = _sqlConnection.Prepare((SeqSelect))) { prog.Bind(1, tableName); SQLiteResult result = prog.Step(); long data = 0; if (prog.DataCount > 0) { data = prog.GetInteger(0); } return(data + 1); } }
public ISQLiteStatement Prepare(string sql) { return(_connection.Prepare(sql)); }
/// <summary> /// Metoda pobierająca ID dowolnego komentarza. Jest używana w czasie dodawania nowych komentarzy. /// Dzięki niej komentarze nie są dublowane. W celu przyśpieszenia zapytania, nie są sprawdzane wszystkie pola. /// </summary> /// <param name="db"></param> /// <param name="deviceId">Id urządzenia</param> /// <param name="zalety">Zalety wymienione w komentarzu</param> /// <param name="wady">Wady wymienione w komentarzu</param> /// <param name="autor">Autor komentarza</param> /// <param name="tekstOpinii">Tekst Opinii</param> /// <returns></returns> public async static Task<long> GetCommentId(ISQLiteConnection db, int deviceId, string zalety, string wady, string autor, string tekstOpinii) { long commIdReturn = 0; try { await Task.Run(() => { using (var commId = db.Prepare("SELECT Id FROM Comment WHERE DeviceId = ? AND Zalety = ? AND Wady = ? AND Autor = ? AND TekstOpinii = ?")) { commId.Bind(1, deviceId); commId.Bind(2, zalety); commId.Bind(3, wady); commId.Bind(4, autor); commId.Bind(5, tekstOpinii); commId.Step(); Debug.WriteLine(" GET ID For " + autor); try { return commIdReturn = (long)commId[0]; } catch { return commIdReturn = 0; } } }); Debug.WriteLine("Comment ID is: " + commIdReturn); return commIdReturn; } catch { return commIdReturn; } }