public ParamInsert ToParamInsert() { var settings = XElement.Parse(settingXml); var pInsert = ParamInsert.Instance().Insert(getXmlElementValue(settings, "table")); parseColumns(settings, (name, value) => pInsert.Column(name, value)); return(pInsert); }
protected string BuilderParse(ParamInsert param) { var data = param.GetData(); var dict = GetPersonDateForUpdate(); var columnNames = new StringBuilder(); var columnValues = new StringBuilder(); var tableName = data.From.Length == 0 ? typeof(T).Name : data.From; GetTableSchema(tableName); foreach (var column in data.Columns.Where(column => !dict.ContainsKey(column.Key.ToUpper()))) { var colData = ColumnSchema.FirstOrDefault(s => s.ColumnName.ToUpper() == column.Key.ToUpper()); if (colData == null) { continue; } columnNames.AppendFormat("{0},", column.Key); if (column.Value == null) { columnValues.Append("NULL,"); } else { columnValues.AppendFormat("{0},", FormatParamValue(column.Value, colData.SqlTypeName)); } } //var properties = Utils.ZReflection.GetProperties(typeof(T)); foreach (var item in dict) { var colData = ColumnSchema.FirstOrDefault(s => s.ColumnName.ToUpper() == item.Key.ToUpper()); if (colData == null) { continue; } //更新数据中包含UpdateDate值,且不为null,则使用数据中的值,否则取当前时间 var updateValue = ""; if (data.Columns.ContainsKey(item.Key) && data.Columns[item.Key] != null && data.Columns[item.Key].ToString() != "") { updateValue = APP.DbProvider == DbProviderEnum.SqlServer ? string.Format("'{0}'", data.Columns[item.Key]) : string.Format( item.Key.ToUpper() == APP.FIELD_UPDATE_DATE ? "to_date('{0}' , 'yyyy-mm-dd hh24:mi:ss')" : "'{0}'", data.Columns[item.Key]); } columnNames.AppendFormat("{0},", item.Key); columnValues.AppendFormat("{0},", updateValue == "" ? item.Value : updateValue); } var insertSql = string.Format("INSERT INTO {0}({1}) VALUES({2})", tableName, columnNames.Remove(columnNames.Length - 1, 1), columnValues.Remove(columnValues.Length - 1, 1)); return(insertSql); }