/// <summary> /// 将行数据填充到Json对象中 /// </summary> /// <param name="row"></param> /// <param name="obj"></param> protected void FillRowToJsonObject(dpz3.db.Row row, dpz3.Json.JsonObject obj) { foreach (var item in row) { obj.String(item.Key, item.Value); } }
/// <summary> /// 创建一个行数据操作器 /// </summary> /// <param name="row">行数据对象</param> public RowOperator Rower(dpz3.db.Row row = null) { if (row == null) { row = new dpz3.db.Row(); } return(OnRowerCreate(row)); }
/// <summary> /// 将行数据填充到Json对象中 /// </summary> /// <param name="row"></param> /// <param name="obj"></param> protected void RenderData(dpz3.db.Row row, dpz3.Json.JsonObject obj = null) { if (dpz3.Object.IsNull(obj)) { obj = JResponse.Data; } foreach (var item in row) { obj.String(item.Key, item.Value); } }
/// <summary> /// 返回一个数据行 /// </summary> /// <param name="row"></param> /// <param name="msg"></param> /// <returns></returns> protected Result.Jttp RowSuccess(dpz3.db.Row row, string msg = null) { Response.Result = 1; if (!msg.IsNoneOrNull()) { Response.Message = msg; } foreach (var item in row) { Response.Data.String(item.Key, item.Value); } return(new Result.Jttp() { Content = Response }); }
// 安装或更新数据库 private static void UpdateDatabase(dpz3.db.Connection dbc, dpz3.XOrm.StandaloneTable table) { // 定义表映射 var Xorms = dpz3.db.OrmMapper.Table("Xorms"); if (!dbc.CheckTable("Xorms")) { if (table.Name == "Xorms") { Console.WriteLine($"[+] 安装数据表 {table.Name} ..."); // 生成字段定义集合 List <dpz3.db.SqlUnits.FieldDefine> list = new List <dpz3.db.SqlUnits.FieldDefine>(); foreach (var field in table.Fields) { dpz3.db.SqlUnits.FieldDefine fieldDefine = new dpz3.db.SqlUnits.FieldDefine(); fieldDefine.Name = field.Name; fieldDefine.Type = field.DataType; fieldDefine.Size = field.DataSize; fieldDefine.Float = field.DataFloat; list.Add(fieldDefine); } // 添加表格 dbc.CreateTable(table.Name, list.ToArray()); // 更新缓存信息 var rowInsert = new dpz3.db.Row(); rowInsert["Name"] = table.Name; rowInsert["Guid"] = Guid.NewGuid().ToString(); rowInsert["Version"] = table.Version; rowInsert["Title"] = table.Title; rowInsert["Description"] = table.Description; dbc.Insert(Xorms, rowInsert); } else { Console.WriteLine($"[!] 尚未找到Xorms表,请先安装xorm-basic包。"); return; } } else { // 判断表信息是否存在 var row = dbc.Select(Xorms).Where(Xorms["Name"] == table.Name).GetRow(); string rowVersion = ""; if (!row.IsEmpty) { rowVersion = row["Version"]; } if (rowVersion != table.Version) { // 判断表是否存在 if (dbc.CheckTable(table.Name)) { Console.WriteLine($"[+] 更新数据表 {table.Name} ..."); // 生成字段定义集合 foreach (var field in table.Fields) { dpz3.db.SqlUnits.FieldDefine fieldDefine = new dpz3.db.SqlUnits.FieldDefine(); fieldDefine.Name = field.Name; fieldDefine.Type = field.DataType; fieldDefine.Size = field.DataSize; fieldDefine.Float = field.DataFloat; // 判断字段是否存在 if (dbc.CheckTableFiled(table.Name, field.Name)) { // 更新字段 dbc.UpdateTableFiled(table.Name, field.Name, fieldDefine); } else { // 添加字段 dbc.AddTableFiled(table.Name, fieldDefine); } } } else { Console.WriteLine($"[+] 创建数据表 {table.Name} ..."); // 生成字段定义集合 List <dpz3.db.SqlUnits.FieldDefine> list = new List <dpz3.db.SqlUnits.FieldDefine>(); foreach (var field in table.Fields) { dpz3.db.SqlUnits.FieldDefine fieldDefine = new dpz3.db.SqlUnits.FieldDefine(); fieldDefine.Name = field.Name; fieldDefine.Type = field.DataType; fieldDefine.Size = field.DataSize; fieldDefine.Float = field.DataFloat; list.Add(fieldDefine); } // 添加表格 dbc.CreateTable(table.Name, list.ToArray()); } // 操作表缓存信息 if (row.IsEmpty) { // 添加表缓存信息 var rowInsert = new dpz3.db.Row(); rowInsert["Name"] = table.Name; rowInsert["Guid"] = Guid.NewGuid().ToString(); rowInsert["Version"] = table.Version; rowInsert["Title"] = table.Title; rowInsert["Description"] = table.Description; dbc.Insert(Xorms, rowInsert).Exec(); } else { // 更新表缓存信息 var rowUpdate = new dpz3.db.Row(); rowUpdate["Version"] = table.Version; rowUpdate["Title"] = table.Title; rowUpdate["Description"] = table.Description; dbc.Update(Xorms, rowUpdate).Where(Xorms["ID"] == row["ID"]).Exec(); } } } }
/// <summary> /// 创建一个行数据操作器 /// </summary> /// <param name="row"></param> /// <returns></returns> protected virtual RowOperator OnRowerCreate(dpz3.db.Row row) { throw new Exception("尚未定义此操作"); }