using JiangSu.Models; using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.Linq; using System.Reflection; using System.Web; namespace JiangSu.cs { public class ModelDAL { public static List SelectByPage(string name, int pageSize = 10, int pageIndex = 1) { bool flag = string.IsNullOrWhiteSpace(name); string sql = string.Format("select * from model {0} order by id limit {1} offset {2}", flag ? "" : "where upper(name) like @name", pageSize, pageSize * (pageIndex - 1)); DataTable dt = flag ? SQLiteHelper.GetDataTable(sql) : SQLiteHelper.GetDataTable(sql, new SQLiteParameter("@name", "%" + name.Trim().ToUpper() + "%")); if (null == dt || dt.Rows.Count == 0) { return null; } List list = ModelHandler.FillModel(dt); return list; } public static Model SelectById(long id) { string sql = "select * from model where id = @id"; SQLiteParameter param = new SQLiteParameter("@id"); param.Value = id; DataTable dt = SQLiteHelper.GetDataTable(sql, param); if (null == dt || dt.Rows.Count == 0) { return null; } List list = ModelHandler.FillModel(dt); return null == list || list.Count == 0 ? null : list[0]; } public static int DeleteByIds(List ids) { string str = string.Join(",", ids.ToArray()); string sql = string.Format("delete from model where id in ({0})", str); return SQLiteHelper.ExecuteNonQuery(sql); } public static int DelAll() { return SQLiteHelper.ExecuteNonQuery("delete from model"); } public static int Insert(Model model) { string sql = "insert into model (name, json) values (@name, @json); select last_insert_rowid();"; SQLiteParameter[] sqlParams = Tools.GetSQLiteParams(sql, model); //return SQLiteHelper.ExecuteNonQuery(sql, sqlParams); object obj = SQLiteHelper.ExecuteScalar(sql, sqlParams); return null == obj ? 0 : Convert.ToInt32(obj); } public static int UpdateById(Model model) { string sql = "update model set name = @name, json = @json where id = @id"; SQLiteParameter[] sqlParams = Tools.GetSQLiteParams(sql, model); return SQLiteHelper.ExecuteNonQuery(sql, sqlParams); } } }