public bool IsExistDataBase(string databaseName) { var sql = string.Format($"SELECT COUNT(*) FROM master.dbo.sysdatabases WHERE name = '{databaseName}'"); var sqlAccess = SqlAccessFactory.CreateSqlAccess(DataBaseManager.Instance.SqlType, DataBaseManager.Instance.ConnectString); var count = SqlTyepConvert.ConvertToInt(sqlAccess.ExecuteScalar(sql)); return(count > 0); }
public void UpgradeAllTables() { var sqlAccess = SqlAccessFactory.CreateSqlAccess(DataBaseManager.Instance.SqlType, DataBaseManager.Instance.ConnectString); foreach (var keypair in ModelDic) { try { var model = UtilTool.ReflectorHelp.CreateInstance(keypair.Value) as ModelBase; if (model == null) { continue; } var sql = IsExistTable(model.TableName); if (SqlTyepConvert.ConvertToInt(sqlAccess.ExecuteScalar(sql)) == 0) {//不存在 sql = CreateTable(model.TableName); sqlAccess.ExecuteNonQuery(sql); } foreach (var column in model.GetColumnsField()) { dynamic sfield = column; if (!sfield.IsStore) { continue; } if (sfield is Many2Many || sfield is Many2One) { if (sfield is Many2Many) { sql = IsExistTable(model.TableName); if (SqlTyepConvert.ConvertToInt(sqlAccess.ExecuteScalar(sql)) == 0) {//不存在 sql = CreateRelationTable(sfield.RelationTableName, sfield.ColumnName, sfield.ColumnName1); } else { sql = string.Empty; } } else { sql = IsExistColumn(model.TableName, sfield.FieldName); if (SqlTyepConvert.ConvertToInt(sqlAccess.ExecuteScalar(sql)) == 0) { sql = CreateColumn(model.TableName, sfield.ColumnName, typeof(int), 0, 0); } else { sql = string.Empty; } } if (!string.IsNullOrEmpty(sql)) { sqlAccess.ExecuteNonQuery(sql); } } else { sql = IsExistColumn(model.TableName, sfield.FieldName); if (SqlTyepConvert.ConvertToInt(sqlAccess.ExecuteScalar(sql)) > 0) { sql = UpgradeColumn(model.TableName, sfield.FieldName, sfield.Type, sfield.Size, sfield.Precision); } else { sql = CreateColumn(model.TableName, sfield.FieldName, sfield.Type, sfield.Size, sfield.Precision); } sqlAccess.ExecuteNonQuery(sql); } } } catch (Exception e) { Console.WriteLine(e); throw; } } }