private DAODataColumn CreateNewDAODataColumn(DAODataTable ddt, DataRow row) { DAODataColumn item = new DAODataColumn(); item.Id = StringHelper.GetNewGuid(); item.Name = row["ColumnName"].ToString(); item.Description = item.Name; item.DataType = (row["DataType"] as System.Type).Name; item.Length = (int)row["ColumnSize"]; item.DataTable = ddt; item.DisplayIndex = row.Table.Rows.IndexOf(row); ddt.DataColumns.Add(item); this.currentUnitOfWork.RegisterNew(item); return item; }
public void LoadMe(DAODataTable ddt, UnitOfWork unitOfWork) { if (ddt == null) { throw new ArgumentNullException("ddt"); } if (unitOfWork == null) { throw new ArgumentNullException("unitOfWork"); } this.daoDataTable = ddt; this.currentUnitOfWork = unitOfWork; this.gcDataColumn.DataSource = null; this.gcDataColumn.DataSource = ddt.DataColumns; }
private static string CreateInsertTableSQL(string[] keys, string[] fields, IList<string[]> vals, ITraceDb trace, bool canTraceAdd, DAODataTable ddt) { string str = null; if ((keys != null) || (keys.Length > 0)) { int length = keys.Length; int num2 = fields.Length; for (int i = 0; i < length; i++) { InsertQuery query = new InsertQuery(ddt.Name); foreach (DAODataColumn column in ddt.DataColumns) { object val = null; if (column.IsNeedInitial) { val = GetInitialValue(column.InitialValue); LoggingService.DebugFormatted("初始化字段:{0} 的值为:{1}", new object[] { column.Name, val }); } else if (column.Name.ToLower() == "createdate") { val = DateTimeHelper.GetNow(); } if (val != null) { try { query.Terms.Add(new UpdateTerm(column.Name, GetSqlExpression(column.DataType, val))); if (canTraceAdd) { trace.TraceOuterAdd(ddt.Name, keys[i], column.Name, val.ToString(), "系统新增字段值记录"); } } catch (Exception exception) { LoggingService.ErrorFormatted("在设置表:{0}字段:{1}初始化值:{2}时出错:{3}\r\n{4}", new object[] { ddt.Name, column.Name, val, exception.Message, exception.StackTrace }); } } } string[] strArray = vals[i]; UpdateTerm ut = new UpdateTerm(ddt.Key, SqlExpression.String(keys[i])); AddUpdateTerm(query.Terms, ut); if (canTraceAdd) { trace.TraceOuterAdd(ddt.Name, keys[i], "系统自动初始化数据新增记录"); } if (fields != null) { string str2 = string.Empty; for (int j = 0; j < num2; j++) { str2 = fields[j]; if (ddt.Contains(str2)) { ut = new UpdateTerm(str2, SqlExpression.String(strArray[j])); AddUpdateTerm(query.Terms, ut); if (canTraceAdd) { trace.TraceOuterAdd(ddt.Name, keys[i], str2, strArray[j], "系统新增字段值记录"); } } } } if (query.Terms.Count > 0) { str = SqlOmRenderHelper.Instance.RenderInsert(query); } } return str; } log.Error("没有找到初始化记录的关键字值,不能正确初始化"); return str; }
public static void Initial(SMDataSource smDS, DAODataTable ddt, string key, string[] fields, string[] vals) { List<string[]> list = new List<string[]>(1) { vals }; Initial(smDS, ddt, new string[] { key }, fields, list); }
public static void Initial(SMDataSource smDS, DAODataTable ddt, string[] keys, string[] fields, IList<string[]> vals) { ITraceDb traceDB = GetTraceDB(smDS); bool canTraceAdd = TraceUtil.CanTraceLevel(TraceLevel.Added) && (traceDB != null); string str = CreateInsertTableSQL(keys, fields, vals, traceDB, canTraceAdd, ddt); if (!string.IsNullOrEmpty(str)) { Exception exception; DBConnection dbcn = new DBConnection(smDS); dbcn.Open(); try { Execute(dbcn, str, null); if (canTraceAdd) { try { traceDB.SaveTraceToDb(); } catch (Exception exception1) { exception = exception1; log.Error("系统对新增数据进行痕记录时出错:", exception); } } } catch (Exception exception2) { exception = exception2; throw new DataFormException("Initial data raise error", exception); } finally { dbcn.Close(); } } }
public static void Initial(SMDataSource smDS, DAODataTable ddt, string[] keys) { Initial(smDS, ddt, keys, null, null); }
public static void Initial(SMDataSource smDS, DAODataTable ddt, string key) { Initial(smDS, ddt, new string[] { key }, null, null); }
public static void Initial(DAODataTable ddt, DataRow row) { foreach (DAODataColumn column in ddt.DataColumns) { if (column.IsNeedInitial) { row[column.Name] = GetInitialValue(column.InitialValue); } } }
public static void Initial(SMDataSource smDS, DAODataTable ddt) { Initial(smDS, ddt, null, null, new string[0]); }
private string GetSelectString(DAODataTable table, string keyValue) { string str3; string str = "select * from " + table.Name; if (!table.Level) { str3 = str; return (str3 + " where " + table.Key + "='" + keyValue + "'"); } str3 = str; return (str3 + " where " + table.RelKey + "='" + keyValue + "' order by " + table.Key); }
private DataTable GetDataTable(DAODataTable DAODataTable, string keyValue, DBConnection dbcn) { DataTable dt = new DataTable(DAODataTable.Name); string selectString = this.GetSelectString(DAODataTable, keyValue); dbcn.ExecuteSql(dt, selectString); dt.PrimaryKey = new DataColumn[] { dt.Columns[DAODataTable.Key] }; if (DAODataTable.Level) { dt.Columns[DAODataTable.Key].AutoIncrement = true; dt.Columns[DAODataTable.RelKey].DefaultValue = keyValue; } else { dt.Columns[DAODataTable.Key].DefaultValue = keyValue; } dt.ExtendedProperties.Add("selectsql", selectString); return dt; }
private void BuildLowLevelSyncSQL(StringBuilder sb, int exitRows, DataTable dtDataSource, DAODataTable daoDataTable, string relKeyValue) { int count = dtDataSource.Rows.Count; if (count != 0) { int num3; DataRow row; int num2 = dtDataSource.Columns.Count; if (exitRows == 0) { int num4; string str = string.Format("insert {0}({1}", daoDataTable.Name, daoDataTable.RelKey); string format = string.Format("values('{0}'", relKeyValue); for (num3 = 0; num3 < num2; num3++) { str = str + "," + dtDataSource.Columns[num3].ColumnName; format = format + ",'{" + num3.ToString() + "}'"; } str = str + ")"; if (count > 1) { for (num3 = 0; num3 < count; num3++) { object[] itemArray = dtDataSource.Rows[num3].ItemArray; num4 = 0; while (num4 < itemArray.Length) { itemArray[num4] = itemArray[num4].ToString().Replace("'", "''"); num4++; } sb.Append(str).AppendFormat(format, itemArray).AppendFormat(");\n", new object[0]); } } else { row = dtDataSource.Rows[0]; List<string[]> list = new List<string[]>(); for (num3 = 0; num3 < num2; num3++) { string[] strArray = row[num3].ToString().Split(new char[] { '\\' }); for (num4 = 0; num4 < strArray.Length; num4++) { if (num3 == 0) { string[] item = new string[num2]; list.Add(item); } if (list.Count > num4) { //list[num4][num3] = (string[]) strArray[num4].Replace("'", "''"); list[num4][num3] = strArray[num4].Replace("'", "''"); } } } foreach (string[] strArray2 in list) { sb.AppendFormat(str, new object[0]).AppendFormat(format, (object[]) strArray2).AppendFormat(");\n", new object[0]); } } } else if (exitRows == 1) { sb.AppendFormat("update {0} set ", daoDataTable.Name); row = dtDataSource.Rows[0]; string str3 = string.Empty; for (num3 = 0; num3 < num2; num3++) { if (num3 > 0) { sb.Append(","); } string columnName = dtDataSource.Columns[num3].ColumnName; sb.AppendFormat("{0}='{1}'", columnName, row[num3].ToString().Replace("'", "''")); str3 = str3 + string.Format(" and ({0} is null or {0}='')", columnName); } sb.AppendFormat("where {0}='{1}'{2};", daoDataTable.RelKey, relKeyValue, str3); } } }