Получить id последней добавленной записи в таблице

 
0
 
Базы данных
ava
heliogracie | 28.03.2013, 23:41
Не могу правильно организовать условие, в котором если запись в таблице существует, то вернуть rowid этой записи, если же не существует то добавить эту запись в таблицу и вернуть её rowid. Пишу на C#. Версия фреймворка 4.0. В качестве базы данных использую Sqlite. Блок if возвращает rowid верный, но вот else выдает постоянно rowid равный 1.



        static void Main(string[] args)
        {
            string dbName = "Data Source=searchindex.db";

            using (SQLiteConnection con = new SQLiteConnection(dbName))
            {
                con.Open();

                using (SQLiteCommand cmd = new SQLiteCommand(con))
                {
                    cmd.CommandText = "SELECT count(rowid) FROM wordlist WHERE word='milk'";
                    int countRows = Convert.ToInt32(cmd.ExecuteScalar());
                    
                    if (countRows == 0) // Если запись не существует в таблице, добавляем её в таблицу и получаем её rowid
                    {
                        cmd.CommandText = "INSERT INTO wordlist(word) VALUES ('milk')";
                        cmd.ExecuteNonQuery();

                        cmd.CommandText = "SELECT last_insert_rowid()";
                        int lastId = Convert.ToInt32(cmd.ExecuteScalar());
                        Console.WriteLine("inserting rowid {0}", lastId);
                    }
                    else // Иначе просто возвращаем rowid
                    {
                        SQLiteDataReader res = cmd.ExecuteReader();
                        Console.WriteLine("selecting rowid {0}", res[0]);
                        res.Close();
                    }
               }
          }
Ответы (1)
ava
Akella | 12.04.2013, 08:40 #
Цитата (heliogracie @  28.3.2013,  22:41 findReferencedText)
Пишу на C#. Версия фреймворка 4.0. 


А при чем здесь это к SQL?

Добавлено позднее:
А так?

Добавлено позднее:
http://stackoverflow.com/questions/3634984...sts-else-update

insert or replace into Book (Name, TypeID, Level, Seen) values ( ... )
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить