Запрос количества строк и столбцов в базе данных SQLite

#c# #database #sqlite

#c# #База данных #sqlite ( код ) #sqlite

Вопрос:

В настоящее время у меня есть база данных под названием «testDB.db», которая содержит 100 строк и 3 столбца. Есть ли какая-нибудь библиотека в C #, которая позволяет мне легко проверить, сколько столбцов и строк содержится в таблице «test001» в «testDB.db»?

 namespace SQLiteExtractor
{
    class Program
    {
        static void Main()
        {
            string liteString = @"Data Source = .testDB.db";
            connectToSQLite(liteString);
        }

        public static void connectToSQLite(string liteConString)
        {
            using SQLiteConnection liteCon = new SQLiteConnection(liteConString);
            liteCon.Open();

            string query = "SELECT * FROM test001";
            int sizeOfDR = 0;
            List<string> liteEntries = new List<string>();

            using var cmd = new SQLiteCommand(query, liteCon);
            using SQLiteDataReader SQLiteDR = cmd.ExecuteReader();

            while (SQLiteDR.Read())
            {
                liteEntries.Add(SQLiteDR.GetString(1));
            }

            foreach (string entry in liteEntries)
                Console.WriteLine(entry);
        }
    }
}
  

Комментарии:

1. Здравствуйте и добро пожаловать! Вы можете получить количество строк, выполнив select count(*) на стороне базы данных.

2. Для строк вы можете сделать SELECT COUNT() , для столбцов вы можете проверить метаданные таблицы с помощью запросов к системной таблице, я думаю? Похоже, PRAGMA table_info(table_name); это может сработать.

3. Да, информация о таблице pragma будет работать, смотрите это для получения дополнительной информации: sqlite.org/pragma.html#pragma_table_info

4. Я вижу, что pragma работает, но как мне сохранить результаты этих SQL-запросов в виде переменных C #?

Ответ №1:

Для строк вы можете выполнить SELECT COUNT() запрос к таблице.

Для cols вы можете проверить метаданные таблицы с помощью запросов к системной таблице. Используйте PRAGMA table_info(table_name); для получения информации о кол-ве.

Специфичный для вашей таблицы:

 SELECT COUNT(*) FROM test001
  

и

 PRAGMA table_info('test001')
  

Комментарии:

1. Большое спасибо за ответ! Знаете ли вы, как я бы сохранил эту информацию в виде переменных в своей программе на C #?

2. @slam505 это должен быть другой вопрос. Или, возможно, поиск вопроса по тем строкам, на которые уже был дан ответ!

3. понял, спасибо. Вы случайно не знаете, как я мог бы подсчитать количество столбцов в этом операторе PRAGMA? Я попытался ВЫБРАТЬ COUNT(*) Из PRAGMA table_info(‘test001’), однако это просто приводит к ошибкам.