Пример #1
0
        /// <summary>Tworzy WierszTabeli na podstawie DataRow.</summary>
        public WierszTabeli(DataRow wiersz)
        {
            this.NazwaTabeli = wiersz.Table.TableName;
            DataColumnCollection kolumny = wiersz.Table.Columns;
            this.zawartosc = new Dictionary<string, object>();
            this.typyKolumn = new Dictionary<string,Type>();
            foreach (DataColumn kolumna in kolumny)
            {
                zawartosc.Add(kolumna.ColumnName, wiersz[kolumna]);
                typyKolumn.Add(kolumna.ColumnName, kolumna.DataType);
            }

            //Jeśli nie ma jeszcze odpowiedniego SchemaInfo w cache, dodajemy.
            //Nie robimy tego przed utworzeniem this.typyKolumn na wypadek gdybyśmy przekazywali informacje o SchemaTable.
            if (!tabele.Keys.Contains(NazwaTabeli) && NazwaTabeli != "SchemaTable")
            {
                List<WierszTabeli> schemaInfo = new BazaDanychSqlServerCE().getSchemaInfo(NazwaTabeli);
                tabele.Add(NazwaTabeli, new SchemaInfo(schemaInfo));
            }
        }
Пример #2
0
        /// <summary>Tworzy pusty WierszTabeli dla tabeli o podanej nazwie.
        /// Pobiera z bazy danych informacje o kolumnach i typach danych.</summary>
        public WierszTabeli(string nazwaTabeli)
        {
            //Sprawdzamy, czy mamy w cache
            if (!tabele.Keys.Contains(nazwaTabeli))
            {
                List<WierszTabeli> schemaInfo = new BazaDanychSqlServerCE().getSchemaInfo(nazwaTabeli);
                if(schemaInfo==null)
                    throw new ArgumentException("W bazie danych nie znaleziono tabeli o nazwie " + nazwaTabeli);
                tabele.Add(nazwaTabeli, new SchemaInfo(schemaInfo));
            }

            string[] nazwy = tabele[nazwaTabeli].nazwyKolumn;

            this.NazwaTabeli = nazwaTabeli;
            this.zawartosc = new Dictionary<string, object>();
            this.typyKolumn = tabele[nazwaTabeli].mapaTypow;
            for (int i = 0; i < nazwy.Length; i++)
            {
                this.zawartosc.Add(nazwy[i], null);
            }
        }