Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Windows phone > Не происходит вставка в базу sqlite


Автор: chip_and_dayl 10.10.2014, 12:02
Всем привет.

Пишу в Visual Studio 2013 C# под Windows Phone 8.1

Есть следующая проблема, почему-то после выполнения операции вставки записей в базе нет

Код

public static string DB_PATH = 
            Path.Combine(Path.Combine(ApplicationData.Current.LocalFolder.Path, "pharmatouch.sqlite"));

private SQLiteConnection dbConn;


Подключение к базе и создание таблицы если она отсуствует
Код

            dbConn = new SQLiteConnection(DB_PATH);
            
            string sql = @"CREATE TABLE if not exists  info_teamlocation( 
                            _id            INTEGER PRIMARY KEY,
                            latitude       DOUBLE,
                            longitude      DOUBLE,
                            provider       VARCHAR,
                            guid           VARCHAR,
                            gps_date       INTEGER DEFAULT ( strftime( '%s', 'now' )  ),
                            currenttime    INTEGER DEFAULT ( strftime( '%s', 'now' )  ),
                            ismodified     INTEGER,
                            moduser        VARCHAR,
                            accuracy       FLOAT,
                            gps            INTEGER,
                            satellite_date INTEGER DEFAULT ( NULL ))";

            using (var statement = dbConn.Prepare(sql))
            {
                statement.Step();
            }          


После чего делаю инсерт и проверку записей
Код

            using (
                var statement = dbConn.Prepare("insert into info_teamlocation(_id, latitude, longitude)                   values(?, ?, ?)")
                )
            {
                statement.Bind(1, "1");
                statement.Bind(2, "40");
                statement.Bind(3, "50");

                statement.Step();
            }

            // возвращает 0 записей
            using (var statement = dbConn.Prepare("SELECT * from info_teamlocation"))
            {
                int i = statement.DataCount;
                if (SQLiteResult.DONE == statement.Step() && i > 0)
                {
                    string x = statement[0].ToString();
                }
            }


Количество записей всегда ноль. statement.Step(); в инсерте возвращает DONE

Автор: chip_and_dayl 10.10.2014, 14:58
Никаких идей? :(

Автор: chip_and_dayl 14.10.2014, 13:34
Вместо этой статьи http://marcominerva.wordpress.com/2014/02/13/the-new-portable-class-library-for-sqlite/ использовал статью http://blogs.msdn.com/b/robertgreen/archive/2012/11/13/using-sqlite-in-windows-store-apps.aspx

И немного затупил. После окончания работы с эмулятором данные сбрасываются. Но моя проблема не в этом была

Всем спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)