Monotouch中的SQLite连接在设备上崩溃

时间:2011-09-12 17:25:19

标签: iphone sqlite xamarin.ios

当连接到设备上的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;

            }
        }

这是应用程序在设备上崩溃时从输出中获得的内容

堆栈跟踪:

at MonoTouch.UIKit.UIApplication.Main(string [],string,string)< 0x0010f>   在MonoTouch.UIKit.UIApplication.Main(string [])< 0x00023>   在/Users/galacoral/Projects/MTBarcodeExample-2/MTBarcodeExample/Main.cs:18中的MTBarcodeExample.Application.Main(string [])[0x00000]   at(wrapper 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。这通常表明 单声道运行时或其中一个本机库中的致命错误

由您的应用程序使用。

0 个答案:

没有答案