Пример #1
0
        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);
        }
Пример #2
0
        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);
        }