На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Максимальный id в SQLite


Одна из самых распространённых задач. Предположим, у нас имеется таблица со стандартной структурой: какой-то внутренний уникальный ид с автоинкрементом и другими полями: номер, название там, что-то еще. А вам необходимо при добавлении не указывать ид, пусть он сам прибавляется на единицу. Однако, автоинкремент может не работать, если не указывать ид явно. Вылезет что-то типа такой ошибки:



Ну что ж, тогда найдем максимальный и сами к нему прибавим единицу. Код:

    int max_id = 0;

            using (var connection = new SQLiteConnection("Data Source=" + dbFileName + ";Version=3;"))
            {
                connection.Open();
                try
                {
                    using (SQLiteCommand command = new SQLiteCommand(connection))
                    {
                        command.CommandText = "SELECT * FROM Chapter ORDER BY id DESC LIMIT 1";
                        SQLiteDataReader r = command.ExecuteReader();
                        while (r.Read())
                        {
                            max_id = Convert.ToInt32(r["id"]);
                            max_id++;
                        }
                        r.Close();
                    }

                }

                catch (SQLiteException ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
                connection.Close();
Вот и все, теперь в следующем запросе мы можем использовать переменную max_id. Все у нас работает:



Обратите внимание, что мы не задействуем операторов типа MAX(id) – так что теоретически это будет работать на любой СУБД, использующей язык запросов SQL – это базовый функционал. Если вам требуется помощь программиста онлайн в написании программ на си шарп или создании SQL запросов к базе данных, то вы можете обратиться ко мне. Мои услуги стоят недорого, причем за свои деньги вы получите гарантированный результат.




тегизаметки, SQLite, си шарп, базы данных, visual studio





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 15. Конкатенация строк с переменными JavaScript
Домашнее шампанское


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.