/// <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); }
/// <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); }