예제 #1
0
        private IEnumerable <EstructuraTablas> GetEstructuraDb(string conexStrg)
        {
            var          lista     = new List <EstructuraTablas>();
            const string sqlString = "SELECT INFORMATION_SCHEMA.COLUMNS.TABLE_NAME, INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, " +
                                     " INFORMATION_SCHEMA.COLUMNS.IS_NULLABLE, INFORMATION_SCHEMA.COLUMNS.DATA_TYPE, INFORMATION_SCHEMA.TABLES.TABLE_TYPE " +
                                     " FROM INFORMATION_SCHEMA.COLUMNS INNER JOIN INFORMATION_SCHEMA.TABLES ON " +
                                     " INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = INFORMATION_SCHEMA.TABLES.TABLE_NAME ORDER BY INFORMATION_SCHEMA.COLUMNS.TABLE_NAME, " +
                                     " INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME";
            var myConnection = new SqlConnection(conexStrg);

            myConnection.Open();

            var myCommand = new SqlCommand(sqlString, myConnection);
            var myReader  = myCommand.ExecuteReader();

            while (myReader.Read())
            {
                var estructuraModel = new EstructuraTablas
                {
                    ColumnName = myReader.GetString(myReader.GetOrdinal("COLUMN_NAME")),
                    TableName  = myReader.GetString(myReader.GetOrdinal("TABLE_NAME")),
                    TableType  = myReader.GetString(myReader.GetOrdinal("TABLE_TYPE")),
                    IsNullable = myReader.GetString(myReader.GetOrdinal("IS_NULLABLE")) == "YES",
                    DataType   = myReader.GetString(myReader.GetOrdinal("DATA_TYPE")),
                };
                lista.Add(estructuraModel);
            }
            myConnection.Close();
            return(lista);
        }
예제 #2
0
        private IEnumerable <EstructuraTablas> GetFuncionDb(string conexStrg)
        {
            var          lista     = new List <EstructuraTablas>();
            const string sqlString =
                "SELECT  name, xtype FROM  sysobjects WHERE  " +
                " (xtype <> 'U') AND (xtype <> 'V') AND " +
                " (xtype <> 'TR')AND (xtype <> 'D') " +
                " ORDER BY name";


            var myConnection = new SqlConnection(conexStrg);

            myConnection.Open();

            var myCommand = new SqlCommand(sqlString, myConnection);
            var myReader  = myCommand.ExecuteReader();

            while (myReader.Read())
            {
                var tipo = myReader.GetString(myReader.GetOrdinal("xtype")).Trim();
                if (tipo == "TR")
                {
                    tipo = "TRIGGER";
                }

                if (tipo == "F")
                {
                    tipo = "REL.FORANEA";
                }

                if (tipo == "PK")
                {
                    tipo = "REL.PRIMARIA";
                }

                if (tipo == "P")
                {
                    tipo = "PROC.ALMACENADO";
                }

                if (tipo == "IF" || tipo == "TF")
                {
                    tipo = "FUNC.TABLA";
                }

                if (tipo == "FN")
                {
                    tipo = "FUNC.ESCALAR";
                }

                var estructuraModel = new EstructuraTablas
                {
                    ColumnName = myReader.GetString(myReader.GetOrdinal("name")),
                    TableType  = tipo,
                };
                lista.Add(estructuraModel);
            }

            const string sqlString2 =
                "SELECT sys.sysobjects.name AS name, OBJECT_NAME(sys.sysobjects.parent_obj) " +
                " AS table_name FROM     sys.sysobjects INNER JOIN sys.tables AS t " +
                " ON sys.sysobjects.parent_obj = t.object_id WHERE  (sys.sysobjects.type = 'TR')";

            myReader.Close();
            var myCommand2 = new SqlCommand(sqlString2, myConnection);

            var myReader2 = myCommand2.ExecuteReader();

            while (myReader2.Read())
            {
                var estructuraModel = new EstructuraTablas
                {
                    ColumnName = myReader2.GetString(myReader2.GetOrdinal("name")),
                    TableType  = "TRIGGER",
                    TableName  = myReader2.GetString(myReader2.GetOrdinal("table_name")),
                };
                lista.Add(estructuraModel);
            }



            myConnection.Close();
            return(lista);
        }