private void Init(MDataTable mTable, string conn) { if (mTable.Columns == null || mTable.Columns.Count == 0) { Error.Throw("MDataTable's columns can't be null or columns'length can't be zero"); } if (string.IsNullOrEmpty(mTable.TableName)) { Error.Throw("MDataTable's tablename can't null or empty"); } mdt = sourceTable = mTable; if (mdt.TableName.IndexOfAny(new char[] { '(', ')' }) > -1) { mdt.TableName = mdt.TableName.Substring(mdt.TableName.LastIndexOf(')') + 1).Trim(); } if (!string.IsNullOrEmpty(conn)) { _Conn = conn; } else { if (mTable.DynamicData != null && mTable.DynamicData is MAction)//尝试多动态中获取链接 { _Conn = ((MAction)mTable.DynamicData).ConnString; } else if (mTable.DynamicData != null && mTable.DynamicData is MProc) { _Conn = ((MProc)mTable.DynamicData).ConnString; } else { _Conn = mTable.Conn; } } if (!DBTool.Exists(mdt.TableName, "U", _Conn)) { DBTool.ErrorMsg = null; if (!DBTool.CreateTable(mdt.TableName, mdt.Columns, _Conn)) { Error.Throw("Create Table Error:" + mdt.TableName + DBTool.ErrorMsg); } } MDataColumn column = DBTool.GetColumns(mdt.TableName, _Conn); FixTable(column);// if (mdt.Columns.Count == 0) { Error.Throw("After fix table columns, length can't be zero"); } dalTypeTo = column.DataBaseType; SetDalBaseForTransaction(); }
private void InitData() { if (!DBTool.Exists("UserType", "U", Connection.Conn)) { using (UserType ut = new UserType()) { ut.Delete("1=1");//Clear All Data for (int i = 1; i < 5; i++) { ut.TypeName = "Type" + i; ut.Insert(InsertOp.None); } } } }
public static bool CheckSysAutoCacheTable() { if (!HasAutoCacheTable && !string.IsNullOrEmpty(AppConfig.Cache.AutoCacheConn)) { string AutoCacheConn = AppConfig.Cache.AutoCacheConn; if (DBTool.TestConn(AutoCacheConn)) { HasAutoCacheTable = DBTool.Exists(KeyTableName, AutoCacheConn); //检测数据是否存在表 if (!HasAutoCacheTable) { MDataColumn mdc = new MDataColumn(); mdc.Add("CacheKey", System.Data.SqlDbType.NVarChar, false, false, 200, true, null); mdc.Add("CacheTime", System.Data.SqlDbType.BigInt, false, false, -1); HasAutoCacheTable = DBTool.CreateTable(KeyTableName, mdc, AutoCacheConn); if (!HasAutoCacheTable) //若创建失败,可能并发下其它进程创建了。 { HasAutoCacheTable = DBTool.Exists(KeyTableName, AutoCacheConn); //重新检测表是否存在。 } } } } return(HasAutoCacheTable); }