public SyncDataExport(string exportPath, string beginDate, string endDate) { this.exportPath = exportPath; this.beginDate = beginDate; this.endDate = endDate; //instantiation the interface IDbOperate dbOperate = new DbOperate(); }
private static bool IsTableExists(string sqlForTableExists, IDbOperate dbOperate) { try { return(dbOperate.IsExist(sqlForTableExists)); } catch (Exception ex) { LogProxy.Error(ex, false); return(false); } }
private static void CreateTable(Type type, string tableName, IDbOperate dbOperate) { StringBuilder sql = new StringBuilder("CREATE TABLE ["); StringBuilder sql2 = new StringBuilder(); sql.Append(tableName); sql.Append("] ( "); var propertys = type.GetProperties() .OrderByDescending(p => p.DeclaringType == typeof(SRO)) .OrderBy(p => p.DeclaringType == type); foreach (PropertyInfo property in propertys) { object[] dataTypeAttributes = property.GetCustomAttributes(typeof(DataTypeAttribute), false); DataTypeAttribute dataTypeAttribute = null; if (dataTypeAttributes != null && dataTypeAttributes.Length > 0) { dataTypeAttribute = dataTypeAttributes[0] as DataTypeAttribute; } if (dataTypeAttribute != null && dataTypeAttribute.IsLoad == false && dataTypeAttribute.IsSave == false) { //判断是否映射 continue; } sql.Append(" [" + property.Name + "] "); CreateTableTypeHandle(property.PropertyType, dataTypeAttribute, ref sql); } sql.Append(" )"); sql2.Append("CREATE CLUSTERED INDEX [ix-CreatedDate] ON [dbo].["); sql2.Append(tableName); sql2.Append("] ( [CreatedDate] DESC "); sql2.Append(")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] "); sql2.Append("CREATE UNIQUE NONCLUSTERED INDEX [ix-Id] ON [dbo].["); sql2.Append(tableName); sql2.Append("] ( [Id] ASC "); sql2.Append(")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] "); try { dbOperate.ExecuteNonQuery(sql.ToString(), null); dbOperate.ExecuteNonQuery(sql2.ToString(), null); } catch (Exception ex) { LogProxy.Error(ex, false); } }
private T LoadObjectDataBaseDirect <T>(string alias, string tableName, string id, bool isNolock) where T : SRO, new() { Type type = typeof(T); IDbOperate dbOperate = DbProxy.Create(alias, type); IDataReader dataReader = null; try { string sql = string.Format(isNolock ? SELECTSINGLEOBJECTWITHNOLOCK : SELECTSINGLEOBJECT, tableName); IMyDbParameter[] prams = { DbParameterProxy.Create("@Id", SqlDbType.NVarChar, 32, id) }; dataReader = dbOperate.GetDataReader(sql, prams); if (!dataReader.Read()) { return(default(T)); } T obj = LoadObject <T>(dataReader); obj.CurrentAlias = alias; obj.CurrentTableName = tableName; return(obj); } catch (Exception ex) { LogProxy.Error(ex, true); throw; } finally { if (dataReader != null) { dataReader.Close(); } } }
private static QueryOutDTO QueryConstructor(Type type, string tableName, string orderBy, string columnList, QueryInDTO inDto, out DataView dataView) { QueryOutDTO outDto = new QueryOutDTO(); dataView = null; try { Dictionary <string, object> returnValue; IMyDbParameter[] prams = { DbParameterProxy.Create("@TableName", SqlDbType.NVarChar, 50, tableName), DbParameterProxy.Create("@OrderBy", SqlDbType.NVarChar, 500, orderBy), DbParameterProxy.Create("@ColumnList", SqlDbType.NVarChar, 500, columnList), DbParameterProxy.Create("@PageSize", SqlDbType.Int, inDto.PageSize), DbParameterProxy.Create("@PageIndex", SqlDbType.Int, inDto.PageIndex), DbParameterProxy.Create("@Condition", SqlDbType.NVarChar, 4000, inDto.Condition), DbParameterProxy.Create("@PageCount", SqlDbType.Int, ParameterDirection.Output), DbParameterProxy.Create("@RecordCount", SqlDbType.Int, ParameterDirection.Output) }; DataSet dataSet; IDbOperate dbOperate = DbProxy.Create(null, type); dbOperate.RunProcedure(PROPAGING, prams, out dataSet, out returnValue); dataView = dataSet.Tables[0].DefaultView; outDto.IsSucceed = true; outDto.PageCount = (int)returnValue["@PageCount"]; outDto.RecordCount = (int)returnValue["@RecordCount"]; } catch (Exception ex) { LogProxy.Error(ex, false); outDto.ErrorMsg = ex.Message; } return(outDto); }
private static void CreateTable(string tableName, IDbOperate dbOperate, PropertyInfo[] propertys) { StringBuilder sql = new StringBuilder("CREATE TABLE ["); sql.Append(tableName); sql.Append("] ( "); propertys = propertys.OrderByDescending(p => p.DeclaringType.ToString() == "Scree.Persister.SRO").ToArray(); foreach (PropertyInfo property in propertys) { object[] dataTypeAttributes = property.GetCustomAttributes(typeof(DataTypeAttribute), false); DataTypeAttribute dataTypeAttribute = null; if (dataTypeAttributes != null && dataTypeAttributes.Length > 0) { dataTypeAttribute = dataTypeAttributes[0] as DataTypeAttribute; } if (dataTypeAttribute != null && dataTypeAttribute.IsLoad == false && dataTypeAttribute.IsSave == false) { //判断是否映射 continue; } sql.Append(" [" + property.Name + "] "); CreateTableTypeHandle(property.PropertyType, dataTypeAttribute, ref sql); } sql.Append(" ) "); try { dbOperate.ExecuteNonQuery(sql.ToString(), null); } catch (Exception ex) { LogProxy.Error(ex, false); } }
public static T[] LoadObjects <T>(string alias, string tableName, int top, string condition, IMyDbParameter[] prams, bool isNolock) where T : SRO, new() { Type type = typeof(T); IDbOperate dbOperate = DbProxy.Create(alias, type); IDataReader dataReader = null; try { string sql = string.Format(isNolock ? SELECTOBJECTSWITHNOLOCK : SELECTOBJECTS, (top <= 0 ? "" : "TOP " + top.ToString()), tableName, condition); dataReader = dbOperate.GetDataReader(sql, prams); List <T> list = new List <T>(); while (dataReader.Read()) { list.Add(LoadObject <T>(dataReader)); } return(list.ToArray()); } catch (Exception ex) { LogProxy.Error(ex, true); throw; } finally { if (dataReader != null) { dataReader.Close(); } } }
public T[] LoadObjects <T>(string alias, string tableName, int top, string condition, IMyDbParameter[] prams, bool isLock, LoadType loadType) where T : SRO, new() { IDataReader dataReader = null; try { string cacheId = null; bool needCache = false; if (loadType == LoadType.CacheFirst && CacheService != null) { needCache = CacheService.IsNeedCached <ArrayCache <T> >(); if (needCache) { string jsonPrams = JsonConvert.SerializeObject(prams); cacheId = string.Format("{0}-{1}-{2}-{3}-{4}-{5}", alias, tableName, top, condition, jsonPrams, isLock); cacheId = Tools.MD5(cacheId); T[] objs = LoadCacheObjects <T>(cacheId); if (objs != null) { return(objs); } } } Type type = typeof(T); string format; if (isLock) { if (string.IsNullOrEmpty(condition)) { format = SELECTOBJECTS; } else { format = SELECTOBJECTSHASCONDITION; } } else { if (string.IsNullOrEmpty(condition)) { format = SELECTOBJECTSWITHNOLOCK; } else { format = SELECTOBJECTSWITHNOLOCKHASCONDITION; } } string sql = string.Format(format, (top <= 0 ? "" : "TOP " + top.ToString()), tableName, condition); IDbOperate dbOperate = DbProxy.Create(alias, type); dataReader = dbOperate.GetDataReader(sql, prams); List <T> list = new List <T>(); while (dataReader.Read()) { list.Add(LoadObject <T>(dataReader)); } T[] t = list.ToArray(); if (needCache) { AddCache <T>(cacheId, t); } return(t); } catch (Exception ex) { LogProxy.Error(ex, true); throw; } finally { if (dataReader != null) { dataReader.Close(); } } }
public static SRO LoadObject(Type type, string alias, string tableName, string id, LoadType loadType, bool isNolock) { if (string.IsNullOrEmpty(id)) { LogProxy.Error(IDISNULL, true); return(null); } if (loadType != LoadType.DataBaseDirect) { SRO obj = LoadCacheObject(type, id) as SRO; if (loadType == LoadType.OnlyCache) { return(obj); } if (obj != null) { return(obj); } } IDbOperate dbOperate = DbProxy.Create(alias, type); IDataReader dataReader = null; try { string sql = string.Format(isNolock ? SELECTSINGLEOBJECTWITHNOLOCK : SELECTSINGLEOBJECT, tableName); IMyDbParameter[] prams = { DbParameterProxy.Create("@Id", SqlDbType.NVarChar, 32, id) }; dataReader = dbOperate.GetDataReader(sql, prams); if (!dataReader.Read()) { return(null); } SRO obj = LoadObject(type, dataReader); if (obj == null) { return(null); } obj.CurrentAlias = alias; obj.CurrentTableName = tableName; return(obj); } catch (Exception ex) { LogProxy.Error(ex, true); throw; } finally { if (dataReader != null) { dataReader.Close(); } } }
public SyncDataImport(string importPath) { this.importPath = importPath; //instantiation the interface IDbOperate dbOperate = new DbOperate(); }