예제 #1
0
        /// <summary>
        /// The get sqlstr.
        /// </summary>
        /// <param name="tableName">
        /// 表名.
        /// </param>
        /// <returns>
        ///  对应表的SQL插入语句.
        /// </returns>
        private static string GetSqlstr(string tableName)
        {
            if (InsertSqlStrs.ContainsKey(tableName))
            {
                return(InsertSqlStrs[tableName]);
            }

            List <ColumnAttribute> insertColums = ThemesDataUtility.GetThemesDataTableColumnAttribute(tableName);

            if (insertColums != null && !SqlTableColcums.ContainsKey(tableName))
            {
                SqlTableColcums.Add(tableName, insertColums);
            }

            if (insertColums == null)
            {
                var smg = new StringBuilder("未找到该表实体对象:");
                smg.Append(tableName);
                Log.Error(smg.ToString());
                throw new Exception(smg.ToString());
            }

            var sbInsertSql = new StringBuilder();

            foreach (ColumnAttribute colAttr in insertColums)
            {
                sbInsertSql.Append("@" + colAttr.Name + ",");
            }

            var sqlparams = sbInsertSql.ToString();

            sqlparams = sqlparams.Substring(0, sqlparams.Length - 1);

            var sqlvalues = sqlparams.Replace("@", string.Empty);
            var insertSql = string.Format(sqlInsertstr, tableName, sqlvalues, sqlparams);

            InsertSqlStrs.Add(tableName, insertSql);
            return(insertSql);
        }
예제 #2
0
        /// <summary>
        /// The get sql parameters.
        /// </summary>
        /// <param name="tableName">
        /// The table name.
        /// </param>
        /// <param name="datavalues">
        /// The datavalues.
        /// </param>
        /// <param name="sensorId">
        /// The sensor id.
        /// </param>
        /// <param name="safetyFactorTypeID">
        /// The safety factor type id.
        /// </param>
        /// <param name="acqTime">
        /// The acq time.
        /// </param>
        /// <returns>
        /// The <see cref="SqlParameter[]"/>.
        /// </returns>
        private static SqlParameter[] GetSqlParameters(string tableName, float[] datavalues, int sensorId, int safetyFactorTypeID, DateTime acqTime)
        {
            List <ColumnAttribute> insertColums;

            if (!SqlTableColcums.ContainsKey(tableName))
            {
                insertColums = ThemesDataUtility.GetThemesDataTableColumnAttribute(tableName);

                if (insertColums != null && !SqlTableColcums.ContainsKey(tableName))
                {
                    SqlTableColcums.Add(tableName, insertColums);
                }
            }
            else
            {
                insertColums = SqlTableColcums[tableName];
            }

            if (insertColums != null)
            {
                var parms = new SqlParameter[insertColums.Count];
                if (parms.Length >= datavalues.Length + 3)
                {
                    var datalen = datavalues.Length;
                    var len     = parms.Length;
                    var colName = new StringBuilder();

                    for (int i = 0; i < datalen; i++)
                    {
                        colName.Append("@" + insertColums[i].Name);
                        parms[i] = new SqlParameter(colName.ToString(), datavalues[i]);
                        colName.Clear();
                    }

                    for (int i = datalen; i < len - 3; i++)
                    {
                        colName.Append("@" + insertColums[i].Name);
                        parms[i] = new SqlParameter(colName.ToString(), null);
                        colName.Clear();
                    }

                    colName.Append("@" + insertColums[len - 3].Name);
                    parms[len - 3] = new SqlParameter(colName.ToString(), sensorId);
                    colName.Clear();
                    colName.Append("@" + insertColums[len - 2].Name);
                    parms[len - 2] = new SqlParameter(colName.ToString(), safetyFactorTypeID);
                    colName.Clear();
                    colName.Append("@" + insertColums[len - 1].Name);
                    parms[len - 1] = new SqlParameter(colName.ToString(), acqTime);
                    colName.Clear();

                    // endif
                }
                else
                {
                    var msg = new StringBuilder(tableName);
                    msg.Append("参数个数不匹配");
                    throw new Exception(msg.ToString());
                }

                return(parms);
            } // endif

            return(null);
        }