/// <summary> /// Inserta una nuevo registro en la base de datos /// </summary> /// <param name="data">La información a insertar en la tabla</param> /// <param name="db">La base de datos por defecto</param> /// <returns>Verdadero cuando realizá la inserción de manera correcta</returns> public Boolean Insert(ISQLiteParser data, string db = "main") { try { SQLiteCommand cmd = new SQLiteCommand(); InsertField[] fields = data.GetInsertFields(); //Query definition String query = "INSERT INTO \"{0}\".\"{1}\"({2}) VALUES ({3})", tableName = fields[0].Tablename, fieldsStr = String.Empty, valuesStr = String.Empty; foreach (InsertField field in fields) { fieldsStr += String.Format("\"{0}\", ", field.ColumnName); valuesStr += String.Format("@{0}, ", field.ColumnName); cmd.Parameters.Add(field.GetSQLiteParameter()); } fieldsStr = fieldsStr.Substring(0, fieldsStr.Length - 2); valuesStr = valuesStr.Substring(0, valuesStr.Length - 2); query = String.Format(query, db, tableName, fieldsStr, valuesStr); cmd.CommandText = query; this.Query(cmd); } catch (Exception exc) { this.Error = exc.Message; } return(this.QuerySucced); }
/// <summary> /// Actualiza un elemento mediante una condición /// </summary> /// <param name="element">El elemento actualizar.</param> /// <param name="condition">La condición a evaluar.</param> /// <param name="conn">La conexión a SQLite.</param> /// <param name="input">The input.</param> /// <returns></returns> public static Boolean UpdateTr(this ISQLiteParser element, string condition, SQLite_Connector conn, KeyValuePair <string, object>[] input) { UpdateField[] data = input.Select(x => element.PickUpdateFields(x)).Where(y => y != null).ToArray(); if (conn.Update(data, condition)) { element.UpdateFields(input); return(true); } else { return(false); } }