> For the complete documentation index, see [llms.txt](https://nas-3.gitbook.io/nasdatabase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nas-3.gitbook.io/nasdatabase/database/class-database/methots.md).

# Methots

Ниже будет приведен список методов для работы с БД.

**Глобальное взаимодействие**&#x20;

* `EnableSafeMode()` - Изменяет тип работы сохранения данных на безопасный.
* `DisableSafeMode()` - Изменяет тип работы сохранения данных на не безопасный.
* `GetSectorByID(uint ID)` - Вычисляет сектор к которому нужно обратиться чтобы получить данные по ID.
* `int[] GetAllIDsByParams(string nameColumn, string data)` - Получает ID всех строк по параметрам.
* `СhengTypeInColumn(string NameColumn, TypeOfData DataType)` - Изменяет тип данных в указанном столбце.
* `RemoveColumn(string ColumnName)` - Удаляет столбец в БД.
* `AddColumn(string Name)` - Добавляет новый столбец. <mark style="color:red;">Процедура очень не продуктивная.</mark>
* `CloneTo(AColumn left, AColumn right)` - Копирует данные из левого столбца в правый. Важно, что копирует внутри самой базы данных.
* `ClearAllColumn(AColumn Column, int InSector = -1)` - Отчищает отдельный столбец в указанном секторе/кластере или везде.
* `ClearAllBase()` - Чистит всю базу / не производительная команда.
* `RenameColumn(string Name, string NewName)` - Переименовывает указанный столбец.&#x20;

**Добавление/Замена данных**&#x20;

* `ChangeEverythingTo(string ColumnName, string Params, string New, int SectorID = -1)` - Заменяет все элементы в указанном столбце на новые данные, довольно тяжелая операция.&#x20;
* `SetData(int ID, params string[] datas)` - Заменяет строку в базе.&#x20;
* `SetDataInColumn(string ColumnName, int ID, string NewData)` - В необходимой табличке происходит замена данных.&#x20;
* `AddData(params string[] datas)`  - Добавляет данные в таблицу, важно чтобы длина поступающего массива была равна количеству столбцов.

**Удаление данных**&#x20;

* `RemoveDataByID(int ID)` - Удаляет данные по введенному ID.
* `RemoveAllData(params object[] datas)` - Удаляет все данные из базы подходящие по параметру.
* `RemoveDatasByIDs(int[] IDs)` - Удаляет все данные по указанному списку ID.
* `RemoveAllData(IDataRow row)` - Удаляет данные, основываясь на строку переданную в метод.&#x20;

**Сортировка/Получение данных по параметрам**

* `string PrintBase()` - Отображает загруженный сектор в память. Если происходит ошибка возврат " ".
* `Row[] GetAllDataInBaseByColumnName(string ColumnName, string Data)` - Сканирует всю БД в поисках подходящих строк.
* `T[] SmartSearch(AColumn[] Columns, SearchType[] SearchTypes, string[] Params, int InSectro = -1)` - По введенным параметрам ищет данные в БД.
* `int GetIDByParams(string ColumnName, string Data, int InSector = -1)` - Ищет первый id элемента по параметрам, если IsSector = -1, то ищет везде.
* `string[] GetDataByID(int ID)` - Находит строку данных по ID.
* `ItemData[] GetDataInBaseByColumnName(string ColumnName, string Data, int InSector = -1)` - Ищет и возвращает первую строку подходящую под введенные параметры возврат через массив ячеек, если не находит => массив пустой.
* `ItemData GetDataByParams(string ColumnName, int ID)` - получает ячейку с данными опираясь на параметры.&#x20;

Список не полон из-за отсутствия в нем перегруженных методов.&#x20;
