Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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
                }));
            }
        }
Exemple #3
0
        /// <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);
 }