Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Scrypto
67 / 68 / 26
Регистрация: 08.02.2013
Сообщений: 398
1

SQLite, возвращать id последней записи

25.12.2016, 14:38. Просмотров 1055. Ответов 6
Метки нет (Все метки)

У меня создана бд, в которой есть автоинкременируемый id, из-за того, что некоторые записи приходится удалять, общее количество записей не совпадает с id последней, как мне узнать id ?

Добавлено через 12 минут
C#
1
 db.Execute("SELECT id FROM Klient ORDER BY Id DESC LIMIT 1");
Вылетает с ошибкой
Код
Необработанное исключение типа "SQLite.SQLiteException" в MyWork.exe

Дополнительные сведения: Row
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2016, 14:38
Ответы с готовыми решениями:

Ошибка: "данный подчиненный запрос должен возвращать не более одной записи"
всем доброго времени суток! сделал запрос на добавление с проверкой на...

Проверка записи в таблице sqlite
У меня есть функция, которая делает проверка на наличие записи в таблице. Если...

ID последней записи в таблице БД
OleDbConnection database = new...

Проверка на существование записи в таблице SQLite
Как сделать проверку содержит ли таблица определенную запись, если нет то...

SQLite скорость записи в базу данных
Решил посмотреть SQLite и с чем его едят. Вроде со всем разобрался и очень все...

6
XIST
1122 / 834 / 116
Регистрация: 01.10.2009
Сообщений: 2,535
Записей в блоге: 1
25.12.2016, 16:38 2
SQL
1
MAX
0
Scrypto
67 / 68 / 26
Регистрация: 08.02.2013
Сообщений: 398
25.12.2016, 18:38  [ТС] 3
Решил таким путем
C#
1
            int nId = db.ExecuteScalar<int>("SELECT Id FROM Klient ORDER BY Id DESC LIMIT 1");
0
XIST
1122 / 834 / 116
Регистрация: 01.10.2009
Сообщений: 2,535
Записей в блоге: 1
25.12.2016, 18:51 4
Scrypto,
если есть sql функция MAX,и вроде даже есть в лайте встроенная функция получения последнего ID, зачем это всё?
0
Scrypto
67 / 68 / 26
Регистрация: 08.02.2013
Сообщений: 398
25.12.2016, 19:04  [ТС] 5
Ну легких путей не ищем по ходу. Не проичитал про нее.
0
OwenGlendower
Супер-модератор
Эксперт .NET
10208 / 8816 / 3771
Регистрация: 17.03.2014
Сообщений: 17,720
Записей в блоге: 1
25.12.2016, 23:12 6
Цитата Сообщение от Scrypto Посмотреть сообщение
как мне узнать id ?
Зачем?
0
_exp10der_
Warrior
490 / 417 / 177
Регистрация: 23.11.2014
Сообщений: 932
26.12.2016, 00:02 7
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
namespace ConsoleApplication272
{
    using System;
    using System.Data;
    using System.Data.SQLite;
    using System.IO;
    using System.Linq;
    using Dapper;
 
    internal class Program
    {
        private static void Main(string[] args)
        {
            var dbFilePath = "TestDb.sqlite";
 
            if (File.Exists(dbFilePath))
                File.Delete(dbFilePath);
 
            SQLiteConnection.CreateFile(dbFilePath);
 
            using (IDbConnection db = new SQLiteConnection($"Data Source={dbFilePath};Version=3;"))
            {
                db.Execute(
                    @"create table Client 
                      (
                        Id                                  integer primary key AUTOINCREMENT,
                        Name                                varchar(100) not null
                      )");
 
                db.Execute("INSERT INTO Client ( Name ) VALUES ('Kos')");
                db.Execute("INSERT INTO Client ( Name ) VALUES ('Alex')");
 
                Console.WriteLine(db.Query<long>("SELECT MAX(Id) FROM Client").First());
 
 
                var id = db.Query<long>(@"INSERT INTO Client ( Name ) VALUES ('Anton');
                             select last_insert_rowid();
                ").First();
 
                Console.WriteLine(id);
            }
        }
    }
}
1
Вложения
Тип файла: zip ConsoleApplication272.zip (4.6 Кб, 4 просмотров)
26.12.2016, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2016, 00:02

Как вернуть Id последней добавленной записи
cmd.ExecuteNonQuery(); возвращает количество задействованных строк. Есть ли...

Как получить индекс последней добавленной записи
Как получить последний добавленный индекс? Добавлено через 11 секунд Почему...

Вычисление значения столбца последней добавленной записи в MS Access
Здравствуйте! У меня такой вопрос: Есть 2 таблицы с названием Квартиросъемщик...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru