/// <summary> /// 获取所有分组表的记录。 /// </summary> /// <returns></returns> public IActionResult GetAllGroup() { SpeedDataTable dt = AppServices.GetService <DataGroupService>().GetAllGroup(); if (dt == null) { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.DATABASE_EXCEPTION, Message = "获取分组信息错误" })); } ResultMessage ResultMsg = new ResultMessage(); if (dt.Count < 1) { ResultMsg.ResultCode = WebAPIStatus.STATE_NO_DATA; ResultMsg.Message = "没有数据。"; } else { ResultMsg.ResultCode = WebAPIStatus.STATE_OK; ResultMsg.DataFormat = "encode:base64;charset:utf-8;text/json"; ResultMsg.Data = dt.SerializeJson(); ResultMsg.Data = Convert.ToBase64String(Encoding.UTF8.GetBytes(ResultMsg.Data)); } return(new JsonResult(ResultMsg)); }
/// <summary> /// 获取指定分组下的数据。 /// </summary> /// <returns></returns> public IActionResult GetDataByGroup() { Dictionary <string, object> data = GetPostData((string Key, string Value) => string.IsNullOrEmpty(Value) ? -1 : Convert.ToInt32(Value)); if (data == null) { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.STATE_FAIL, Message = "请求方式错误。" })); } if (!(data.ContainsKey("pageSize"))) { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.STATE_FAIL, Message = "缺少 pageSize 参数。" })); } if (!(data.ContainsKey("page"))) { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.STATE_FAIL, Message = "缺少 page 参数。" })); } if (!(data.ContainsKey("GID"))) { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.STATE_FAIL, Message = "缺少 GID 参数。" })); } try { int Total = AppServices.GetService <DataService>().GetTotalCount((int)data["GID"]); SpeedDataTable dt = AppServices.GetService <DataService>().GetGroupData((int)data["GID"], (int)data["pageSize"], (int)data["page"]); if (Total > 0 && dt.Count > 0) { StringBuilder buff = new StringBuilder("{"); buff.AppendFormat("\"total\": {0}", Total); buff.AppendFormat(", \"rows\": {0}", dt.SerializeJson()); buff.Append("}"); ResultMessage ResultMsg = new ResultMessage(); ResultMsg.ResultCode = WebAPIStatus.STATE_OK; ResultMsg.DataFormat = "encode:base64;charset:utf-8;text/json"; ResultMsg.Data = Convert.ToBase64String(Encoding.UTF8.GetBytes(buff.ToString())); return(new JsonResult(ResultMsg)); } else { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.STATE_NO_DATA, Message = "没有数据。" })); } } catch (Exception Ex) { return(new JsonResult(new ResultMessage { ResultCode = WebAPIStatus.INTERNAL_SERVER_ERROR, Message = Ex.Message })); } }
/// <summary> /// 将一个 DataTable 中的改动批量保存回数据库(仅针对单表查询所得的数据集,并且在调用批量更新之前必须将数据库中的要更新的表名称设置为 DataTable 对像的 TableName 属性)。 /// </summary> /// <param name="Table">需要对其进行批量保存的数据集。</param> /// <param name="rowJudgment">用于判断数据行的操作处理的函数,在该函数中您需要判断给定的 Table 的某个字段在当前行的值。并通过该值来告诉程序应该如何处理此行。 /// <para>例如:在 DataTable 中设置一个名为“STATUS”的状态列表示更新状态。</para> /// <para> 0 表示未无改动,1 表示新增, 2 表示更新(任何一列的数据已被更改),3 表示删除(用户进行了删除时标记为此值,而不是直接从Table中删除)</para> /// <para>示例代码请参见更新日志中。</para> /// </param> /// <returns></returns> public int BatchSaveDataTable(SpeedDataTable Table, BatchSaveSpeedRowJudgment rowJudgment) { if (Table == null) { return(0); } if (Table.Count < 1) { return(0); } if (string.IsNullOrEmpty(Table.TableName)) { throw new Exception("在未指定 Table.TableName 的情况下不能使用批量更新。您必须将 Table 对象的 TableName 属性指定为数据库中的表名称时批量更新方能正常工作。"); } if (rowJudgment == null) { throw new Exception("不指定 rowJudgment 方法时批量更新方法无法工作。"); } int effect = 0; DataRowSubmission rowSubmission; for (int i = 0; i < Table.Count; ++i) { rowSubmission = rowJudgment(Table[i]); if (rowSubmission == null) { rowSubmission = new DataRowSubmission(QuickDataChangerSubmission.Ignore); } if (rowSubmission.Submission == QuickDataChangerSubmission.Ignore) { continue; } DbCommandBuilder Command = RowSubmissionCommand(Table[i], rowSubmission); if (Command == null) { continue; } if (Trans == null) { effect += Engine.DBA.ExecuteNoneQuery(Command); } else { effect += Trans.DBA.ExecuteNoneQuery(Command); } } return(effect); }
/// <summary> /// 指行指定的查询命令,并返回数据集。 /// </summary> /// <param name="Command">要执行的查询。</param> /// <returns></returns> public SpeedDataTable ExecuteQuery(CommandBuilder Command) { IDataReader Rd = ExecuteReader(Command); if (Rd == null) { return(null); } SpeedDataTable dt = new SpeedDataTable(); using (Rd) { string FieldName; int i = 0; // 创建列集合。 if (Rd.FieldCount > 0) { for (; i < Rd.FieldCount; ++i) { FieldName = Rd.GetName(i); dt.Columns.Add(FieldName, Rd.GetFieldType(i)); } } // 填充所有行。 while (Rd.Read()) { SpeedDataRow Row = new SpeedDataRow(dt); for (i = 0; i < Rd.FieldCount; ++i) { Row[i] = Rd.GetValue(i); } dt.Add(Row); } Rd.Close(); } return(dt); }
internal void InitVars() { this.tableSpeed = ((SpeedDataTable)(this.Tables["Speed"])); if ((this.tableSpeed != null)) { this.tableSpeed.InitVars(); } }
internal SpeedRow(DataRowBuilder rb) : base(rb) { this.tableSpeed = ((SpeedDataTable)(this.Table)); }
private void InitClass() { this.DataSetName = "SpeedData"; this.Prefix = ""; this.Namespace = "http://www.tempuri.org/SpeedData.xsd"; this.Locale = new System.Globalization.CultureInfo("en-US"); this.CaseSensitive = false; this.EnforceConstraints = true; this.tableSpeed = new SpeedDataTable(); this.Tables.Add(this.tableSpeed); }