Соединение SQLite в Monotouch обрывается на устройстве - PullRequest
0 голосов
/ 12 сентября 2011

При подключении к базе данных SQLlite на устройстве у меня возникает странная проблема в monotouch. Код работал нормально в течение нескольких недель, и только недавно он перестал работать, но я не внес никаких изменений в код SQL. Плюс он отлично работает в симуляторе, но не на реальном устройстве.

В пятницу я столкнулся с этой проблемой при возврате своих результатов и заполнении таблицы данных

a.Fill(d);

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

(SqliteConnection conn = new SqliteConnection(connectionstring))

Может кто-нибудь предложить что-нибудь, что я мог бы попробовать?

var documents = Environment.GetFolderPath (Environment.SpecialFolder.Personal);

        string db = Path.Combine (documents, "SwipeITLocal");

        string connectionstring =  "Data Source= " + db;
            using (SqliteConnection conn = new SqliteConnection(connectionstring))
        {
            conn.Open();

            using (SqliteCommand cmd = new SqliteCommand("Select * from Vouchercaptureddata order by timecaptured desc",conn))
            {
                cmd.CommandType = CommandType.Text;
                DataTable d = new DataTable(); 
                SqliteDataAdapter a = new SqliteDataAdapter(cmd);
                a.Fill(d);
                cmd.ExecuteNonQuery();
                Console.WriteLine("Voucher Data Loaded");
                return d;

            }
        }

Это то, что я получаю из вывода при сбое приложения на устройстве

StackTrace:

в MonoTouch.UIKit.UIApplication.Main (строка [], строка, строка) <0x0010f> в MonoTouch.UIKit.UIApplication.Main (string []) <0x00023> в MTBarcodeExample.Application.Main (string []) [0x00000] в /Users/galacoral/Projects/MTBarcodeExample-2/MTBarcodeExample/Main.cs:18 at (обертка runtime-invoke) object.runtime_invoke_dynamic (intptr, intptr, intptr, intptr) <0xffffffff>

Собственная трассировка стека:

0   MTBarcodeExample                    0x0061b9e0 mono_handle_native_sigsegv + 412
1   MTBarcodeExample                    0x005f4d04 mono_sigsegv_signal_handler + 360
2   libsystem_c.dylib                   0x36b4572f _sigtramp + 42
3   MTBarcodeExample                    0x001dfa4c Mono_Data_Sqlite_SqliteConnection__ctor_string + 40

Отладочная информация из GDB:

=============================================== ================== Получил SIGSEGV при выполнении нативного кода. Это обычно указывает фатальная ошибка в моно среде выполнения или в одной из собственных библиотек

используется вашим приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...