Exemplo n.º 1
0
        private void GetColumns(Table table)
        {
            DataTable schema;

            using (SQLiteConnection connection = new SQLiteConnection(helper.ConnectionString))
            {
                connection.Open();
                schema = connection.GetSchema("COLUMNS");
            }

            foreach (DataRow r in schema.Select(string.Format("TABLE_NAME = '{0}'", table)))
            {
                Model.Field model = new Model.Field();

                model.AllowNull = Convert.ToBoolean(r["IS_NULLABLE"]);
                model.Position  = Convert.ToInt32(r["ORDINAL_POSITION"]);
                model.Name      = r["COLUMN_NAME"].ToString();
                model.SetDbType(Model.DatabaseTypes.SQLite, SchemaHelper.GetString(r["DATA_TYPE"]));
                model.DefaultValue = r["COLUMN_DEFAULT"].ToString();
                model.Descn        = SchemaHelper.GetString(r["DESCRIPTION"]);
                model.Size         = Convert.ToInt32((r["CHARACTER_MAXIMUM_LENGTH"] == DBNull.Value) ? 0 : r["CHARACTER_MAXIMUM_LENGTH"]);
                model.Length       = SchemaHelper.GetInt(r["CHARACTER_MAXIMUM_LENGTH"]);
                model.IsIdentifier = SchemaHelper.GetBool(r["AUTOINCREMENT"]);

                if (Convert.ToBoolean(r["PRIMARY_KEY"]))
                {
                    model.IsKeyField = true;
                }
                else
                {
                    model.IsKeyField = false;
                }

                table.AddField(model);
            }
        }