Example #1
0
        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);
        }
Example #2
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;
                }
            }
        }