| | |
| | | using System.Data; |
| | | using System.Data.SQLite; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Web; |
| | | |
| | | namespace JiangSu.cs |
| | | { |
| | | public class ModelDAL |
| | | { |
| | | public static Model SelectById(int id) |
| | | /// <summary> |
| | | /// 获取参数列表 |
| | | /// </summary> |
| | | public static SQLiteParameter[] GetParams<T>(string sql, T t) |
| | | { |
| | | List<SQLiteParameter> list = new List<SQLiteParameter>(); |
| | | Type tType = typeof(T); |
| | | BindingFlags flags = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance; |
| | | |
| | | int start = sql.IndexOf("@"); |
| | | while (start != -1) |
| | | { |
| | | int end = sql.IndexOf(",", start); |
| | | if (end == -1) end = sql.IndexOf(")", start); |
| | | if (end == -1) end = sql.IndexOf(" ", start); |
| | | if (end == -1) end = sql.Length; |
| | | |
| | | string name = sql.Substring(start + 1, end - start - 1); |
| | | PropertyInfo pi = tType.GetProperty(name, flags); |
| | | if (pi != null) |
| | | { |
| | | object value = pi.GetValue(t, null); |
| | | SQLiteParameter dp = new SQLiteParameter("@" + name, value); |
| | | list.Add(dp); |
| | | } |
| | | |
| | | start = sql.IndexOf("@", end); |
| | | } |
| | | |
| | | return list.ToArray(); |
| | | } |
| | | |
| | | public static Model SelectById(long id) |
| | | { |
| | | string sql = "select * from model where id = @id"; |
| | | |
| | |
| | | |
| | | return null == list || list.Count == 0 ? null : list[0]; |
| | | } |
| | | |
| | | public static int DeleteByIds(List<long> list) |
| | | { |
| | | string ids = string.Join(",", list.ToArray()); |
| | | string sql = string.Format("delete from model where id in ({0})", ids); |
| | | |
| | | return SQLiteHelper.ExecuteNonQuery(sql); |
| | | } |
| | | |
| | | public static int insert(Model model) |
| | | { |
| | | string sql = "insert into model (name, json) values (@name, @json)"; |
| | | SQLiteParameter[] sqlParams = GetParams<Model>(sql, model); |
| | | |
| | | return SQLiteHelper.ExecuteNonQuery(sql, sqlParams); |
| | | } |
| | | |
| | | public static int UpdateById(Model model) |
| | | { |
| | | string sql = "update model set name = @name, json = @json where id = @id"; |
| | | SQLiteParameter[] sqlParams = GetParams<Model>(sql, model); |
| | | |
| | | return SQLiteHelper.ExecuteNonQuery(sql, sqlParams); |
| | | } |
| | | } |
| | | } |